public class MainTest { //模拟一个登录界面 //需求:系统的正确登录名是:cxk521;正确的密码是:kk521; // 要求设置一个登录界面,要求用户输入;判断是否登录成功; // 如果登录成功,则显示登陆成功,如果登录失败,则提示重新输入,并最多三次登录机会; //另外加一个验证码认证; public static void main(String[] args) { //步骤: //1.模拟界面 //2.要求用户输入; //3.写一个判断的方法; //4.开始简单的判断; //5.加入条件:利用循环限制最大尝试次数; System.out.println("===欢迎来到登录页面==="); for (int i = 0; i < 3; i++) { Scanner sc = new Scanner(System.in); System.out.println("请您输入用户名:"); String name = sc.next(); System.out.println("请您输入密码:"); String pass = sc.next(); String okcode = creatcode(4);//正确的验证码; System.out.println("正确的验证码为:" + okcode); System.out.println("请您输入验证码:"); String code = sc.next(); if (judge(name, pass)&& okcode.equals(code)) { System.out.println("登录成功"); break; } else { if (i == 2) { System.out.println("您的输入有误,您没有机会了!"); System.out.println("您已经三次登录失败,账号已锁定!"); } else { System.out.println("您的输入有误,请检查用户名和密码并重新输入:"); System.out.println("您只有" + (2 - i) + "次输入机会了!"); } } } } //判断密码方法; public static boolean judge(String name, String pass) { //需要先提供正确的用户名和密码; String okname = "cxk521"; String okpass = "kk521"; return (okname.equals(name) && okpass.equals(pass)); } //生成特定位数的验证码(数字,大小写字母):这里规定为四位; public static String creatcode(int n)//n==4; { //总的思路: //先确定每一位是什么类型的验证码;0,1,2分别对应数字,大写字母,小写字母; //根据0,1,2再生成对应类型的字符; //每生成一位字符都相连; int a = 0; String code = ""; Random r = new Random(); for (int i = 0; i < n; i++) { a = r.nextInt(3);//0~2的数字; switch (a) { case 0: code += r.nextInt(10); break; case 1: code += (char) (r.nextInt(25) + 65);//大写ascii码 break; case 2: code += (char) (r.nextInt(25) + 97);//小写ascii码 break; } } return code; } }