package cn.itcast.string;
import java.util.Scanner;
/**
* 模拟用户的登陆, 最多可有三次机会。 思路: 已知账号和密码, 通过键盘录入来获取用户的输入, 判断用户输入 , 并记录次数 用循环来控制
*/
public class Scanner_Login {
public static void main(String[] args) {
// 定义账号和密码
String username = "admin";
String password = "admin";
// 创建键盘录入对象
Scanner sc = new Scanner(System.in);
System.out.println("请输入账号:");
String user = sc.next();
System.out.println("请输入密码:");
String passwd = sc.next();
for (int i = 3; i>0; i--) {
if ((user != " " && user != null)
&& (passwd != null && passwd != " ")) {
if (user.equals(username) && passwd.equals(passwd)) {
System.out.println("登陆成功");
break;
} else {
if((i-1)!=0){
System.out.println("账号名和密码不匹配");
System.out.println("你还有" + (i-1) + "次機會");
System.out.println("请重新输入账号:");
user = sc.next();
System.out.println("请重新输入密码:");
passwd = sc.next();
}else{
System.out.println("登陸失敗");
}
}
} else {
if((i-1)!=0){
System.out.println("请输入正确的格式");
System.out.println("你还有" + (i-1) + "次機會");
System.out.println("请重新输入账号:");
user = sc.next();
System.out.println("请重新输入密码:");
passwd = sc.next();
}else{
System.out.println("登陸失敗");
}
}
}
}
}
两个问题 :
一:代码写的比较凌乱, 以实现功能为目的 ,有待优化 ;
二:貌似判断 非空 和 非空字符串 没有起作用。 (望大神指点。)
对于第二个问题, 我自己一时也没想出是为什么。
|
|