public static void shixian() {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入账号:");
String name = scanner.next();
System.out.println("请输入密码:");
String password = scanner.next();
Map<String, String> map = new HashMap<>();
map.put("222", "222");
map.put("1", "1");
map.put("2", "3");
Set<Entry<String, String>> en = map.entrySet();
for (Entry<String, String> entry : en) {
if (name.equals(entry.getKey()) && password.equals(entry.getValue())) {
System.out.println("登录成功");
break;
} else {
System.out.println("用户名错误,请确认账户和密码后再输入");
//shixian();
}
}
}
问题出现在你的for循环中
修改为:
public static void shixian() {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入账号:");
String name = scanner.next();
System.out.println("请输入密码:");
String password = scanner.next();
Map<String, String> map = new HashMap<>();
map.put("222", "222");
map.put("1", "1");
map.put("2", "3");
Set<Entry<String, String>> en = map.entrySet();
boolean isTrue=false;
for (Entry<String, String> entry : en) {
if (name.equals(entry.getKey()) && password.equals(entry.getValue())) {
isTrue=true;
break;
}
}
System.out.println(isTrue?"登陆成功":"登陆失败");
}
把Set 能用for循环? 把循环方式改改,改为Iterator遍历
for (Entry<String, String> entry : en) {
if (name.equals(entry.getKey()) && password.equals(entry.getValue())) {
System.out.println("登录成功");
break;
} else {
System.out.println("用户名错误,请确认账户和密码后再输入");
//shixian();
}
}
这样判断第一个key和value不对时就会输出 用户名错误,请确认账户和密码后再输入
没有把map全部遍历