- 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更符合生活实际。
|
|