| 
 
| 复制代码package Demo;
import java.util.Scanner;
/**
 * @author 小媛<br>
 *         需求: <br>
 *         ①模拟客户端登陆<br>
 *         ②通过控制台录入用户密码,校验正确,则提示登陆成功; 否则提示错误<br>
 *         ③5次输错密码,则锁定<br>
 * 
 *         思路:<br>
 *         ①本地保存密码 使用String(可模拟数据)<br>
 *         ②用户输入密码,使用控制台的Scanner<br>
 *         ③计数器思想 标识错误次数<br>
 *         ④密码输入正确 / 或者连续5次输错密码 结束程序
 */
public class Demo1 {
        public static void main(String[] args) {
                int count = 0;// 计数器 标识错误的次数
                String password = "1234567890";// 模拟用户的密码
                boolean status = false;// 锁
                while (!status) {
                        String currentPassWord = getInputPasswrod();
                        if (currentPassWord.equals(password)) {
                                System.out.println("登陆成功");
                                status = true;
                        } else {
                                if (count < 5) {
                                        System.out.println("密码错误,请重新输入");
                                } else {
                                        status = true;
                                        System.out.println("系统检查到密码登陆次数过多,自动锁定。请24小时后重试");
                                }
                                count++;
                        }
                }
                System.exit(0);
        }
        private static String getInputPasswrod() {
                Scanner scanner = new Scanner(System.in);
                System.out.println("请输入密码,按回车键登陆");
                String str = scanner.next();
                return str;
        }
}
 【小媛总结】
 这里很可能有朋友会问,为什么用status锁,为什么用while
 答:①status是为了更贴切的符合“面向对象的思想”,作为标识循环的是否开启与结束;当然,闲麻烦也可以直接用true,然后注释status
 ②while更符合语境。在没有预知用户哪一次输入正确密码,和到底是什么时候输错了5次,导致循环结束。所以用while 要比for更符合生活实际。
 
 
 
 | 
 |