Java 验证登录的案例

    需求
       已知用户名和密码,请用程序模拟用户登录,总共有三次机会,登录之后,给出相对应的提示
    思路
           1.已知用户名和密码,定义两个字符串即可
           2.键盘录入登录数数据
           3.用录入的数据和原来的数据相比对  equals()方法实现
           4.用循环实现多次机会,采用for循环,在登录成功后,实验break结束循环

首先,看黑马老师的代码 

package 课后作业;

import java.util.Scanner;

public class 用户登录黑马 {
	/*
	   需求
	   已知用户名和密码,请用程序模拟用户登录,总共有三次机会,登录之后,给出相对应的提示
	   
	   
	   思路
	       1.已知用户名和密码,定义两个字符串即可
	       2.键盘录入登录数数据
	       3.用录入的数据和原来的数据相比对  equals()方法实现
	       4.用循环实现多次机会,采用for循环,在登录成功后,实验break结束循环
	 */

	public static void main(String[] args) {
		// TODO 自动生成的方法存根
		String username="itheima";
		String password="czbk";
		
		//4.用循环实现多次机会,采用for循环,在登录成功后,实验break结束循环
		for (int i = 0; i < 3 ; i++) {
			
		
		
		Scanner sc=new Scanner(System.in);
		System.out.println("请输入账号:");
		String name =sc.nextLine();
		System.out.println("请输入密码:");
		String pwd=sc.nextLine();
		sc.close();
		if(name.equals(username)&&pwd.equals(password)) {
			System.out.println("密码验证成功");
			break;
		}else {
			//
	    	 System.out.println("密码验证失败,您还有"+(2-i)+"次机会");
	    	 
	        }
		}
	}

}

 以下的代码,是我自己写的,可以作为参考,比黑马老师的代码复杂一丢丢.

其实我就是按照,面对对象的思想来写的,实例化对象来获取类中的方法,或者获取值,这样就能把main方法中的代码简单化,甚至只需要调用就好了,出了问题直接去看各个“模块”,问题一目了然,在写代码的路上也遇到了很多很多问题,例如NoSuchElementException报错等等等,但是好在都解决了,不过思来想去,我渐渐明白了也个道理,就是感觉一直跟着课走其实很傻,有的时候,在一些案例题上,你会产生自己的想法,但是,课上的老师,肯定不会教给你难的方法,他只是想让你明白他说的这种方式,有的时候你就也跟着老师走了,但是这样的话,这个问题,你的想法,是不会再来第二次的,课是上不完的,思想虽然也在与时俱进,但是会不会总是显得不这么完整!,学java来的这几天,我总是以为自己差不多都看会了,但其实,当你自己去实操一个小小的小项目的时候,弊端就一个一个都出来了,就像这个破案例,我都做了一天半,不过好在是成功了,太笨了,还需要好好努力,加油,勉励!

获取账号和密码类

package 登录;

import java.util.Scanner;

public class 获取账户密码 {
	public int getAccount() {
		// TODO 自动生成的方法存根
		System.out.println("请输入账号");
		Scanner sc=new Scanner(System.in);
	    int pp=sc.nextInt();
		
		
		return pp;

	}
	public String getPassword() {
		// TODO 自动生成的方法存根
		System.out.println("请输入密码");
		Scanner sc=new Scanner(System.in);
	    String pp=sc.next();
		
		
		return pp;

	}

}

比较类 

package 登录;

public class 比较 {
	
	public static int judgement(int account,String password,int a,String p) {
		获取账户密码 aaa = new 获取账户密码();
		 a =aaa.getAccount();
		获取账户密码 ppp = new 获取账户密码();
		 p =ppp.getPassword();
		System.out.println(a+"这还a");
		System.out.println(p+"这是p");
		System.out.println(account+"这是account");
		System.out.println(password+"这是password");
		if( a==account && p.equals(password) ) {   //||是或者的意思
	    	 return 0;                             //&&是和的意思
	    }else {
	    	 return 1;
	    }
	 }
}

测试类

package 登录;

public class 测试 {
	

	public static void main(String[] args) {
		 
		
		for (int i = 0; i < 3; i++) {
		  int a=0;             //进行初始化
		  String p="null";     //进行初始化
		  int result =比较.judgement(123456,"123456", a, p);
		 if(result>0) {
	    	 System.out.println("密码验证失败请重新输入账号和密码,您还有"+(2-i)+"次机会");
	     }else {
	    	 System.out.println("密码验证成功");
	    	 break;
	     }
	}
	}
}

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

很丧

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值