要求:
(1) 用户名和密码正确,提示登录成功。
(2) 用户名或密码不正确,提示“用户名或密码错误”。
(3) 总共有 3 次登录机会,在 3 次内(不包含第一次)输入正确的用户名和密码回到(1)。如若,超过 3 次输入的用户名或密码有误,则提示登录失败无法再继续登录。。。 在登录时,需要比较用户输入的用户名密码与已知的用户名密码是否相同,本案例可以使用 Scanner 类以及 String 类的相关方法实现比较操作。
一、代码
import java.util.HashMap;
import java.util.Scanner;
import java.util.Set;
public class Test1 {
public static void main(String[] args) {
HashMap<String, String> map = new HashMap<>();
Scanner sc = new Scanner(System.in);
// 加入初始用户
map.put("1", "q123");
map.put("2", "q1234");
map.put("3", "q123");
//
String userName; // 用于输入的用户名
String userPassword; // 用于输入的密码
int begin = 3; // 控制输入次数
boolean flag = true; // 控制循环
while(flag) {
// 输入用户名和密码
if(begin > 0 && begin <= 3) {
System.out.print("请输入用户名: ");
userName = sc.next();
System.out.print("请输入密码: ");
userPassword = sc.next();
}else {
System.out.println("登录失败无法再继续登录。。。");
return;
}
//
int a = 0; // a 变量与 b 变量都 == 1时表示用户名和密码都存在。
int b = 0;
int c = 1; // c==1时表示用户名不存在
// // 遍历用户或密码是否正确
Set<String> keySet = map.keySet();
for (String item : keySet) {
if (item.equals(userName)) {
a = 1;
c = 0; // c==0时,表示用户名存在
String pws = map.get(item);
if (userPassword.equals(pws)) {
b = 1;
System.out.println("登录成功!");
flag = false;
}
}
}
//
if(a != b || c == 1) {
System.out.println("用户名或密码错误!!!");
begin--;
}
}
}
}
二、运行结果
如有帮助,点赞加关注!!!