【案例介绍】
1.任务描述
在使用一些 APP 时,通常都需要填写用户名和密码。用户名和密码输入都正确才会登录成功,否则会提示用户名或密码错误。
本例要求编写一个程序,模拟用户登录。程序要求如下:
(1) 用户名和密码正确,提示登录成功。
(2) 用户名或密码不正确,提示“用户名或密码错误”。
(3) 总共有 3 次登录机会,在 3 次内(包含三次)输入正确的用户名和密码后给出登录成功的相应提示。超过 3 次用户名或密码输入有误,则提示登录失败,无法再继续登录。
在登录时,需要比较用户输入的用户名密码与已知的用户名密码是否相同,本案例可以使用 Scanner 类以及 String 类的相关方法实现比较操作。
2.运行结果
【案例任务】
- 学会分析“模拟用户登录”任务的实现思路。
- 根据思路独立完成“模拟用户登录”任务的源代码编写、编译及运行。
- 掌握 String 类及 Scanner 类中常用方法的使用。
- 掌握之前学习的 if 判断知识。
【案例思路】
(1) 分析任务描述可知,已知用户名密码,定义两个字符串表示即可。
(2) 键盘录入要登录的用户名密码。用 Scanner 实现。
(3) 拿键盘录入的用户名密码和已知的用户名密码进行比较,给出相应的提示,字符串内容比较用 equles 实现。
(4) 循环实现多次机会。这里次数明确,用 for 循环实现。并在登录成功的时候。用break 结束循环。
【案例实现】
import java.util.Scanner;
public class main {
public static void main(String[] args) {
String username = "username";
String password = "password";
Scanner scanner = new Scanner(System.in);
System.out.println("请输入用户名:");
String inputUsername = scanner.nextLine();
System.out.println("请输入密码:");
String inputPassword = scanner.nextLine();
for (int i = 0; i < 3; i++) {
if (inputUsername.equals(username) && inputPassword.equals(password)) {
System.out.println("登录成功!");
break;
} else {
if (i == 2) {
System.out.println("你的账号已被锁定了,请联系管理员!");
break;
}
System.out.println("登录失败,还有" + (2 - i) + "次机会");
System.out.println("请输入用户名:");
inputUsername = scanner.nextLine();
System.out.println("请输入密码:");
inputPassword = scanner.nextLine();
}
}
}
}