【发布时间】:2018-07-06 15:12:16
【问题描述】:
我在下面有这段代码。假设我的列表中有 3 个用户。 用户号 1 用户编号 2 用户号 3 我想在控制台中传递用户名和密码,以便包含此循环的方法检查数据是否正确。 **我的问题是:**我想登录帐号 3,但控制台打印“错误”2 次,最后打印“确定”(我知道为什么,但是 - 它会检查列表中每个对象的这个条件,但我不能想出解决方案) 如何更改此代码,使其仅在登录/通过正确时写入“OK”,如果传递的数据错误则仅打印一次“ERROR”?
System.out.print("Login: ");
String username = scanner.nextLine();
System.out.print("Password: ");
String password = scanner.nextLine();
for(User checkedUser : userList) {
if ((username.equals(checkedUser.getUsername())) &&
(password.equals(checkedUser.getPassword()))) {
System.out.println("OK");
} else {
System.out.println("ERROR");
}
}
【问题讨论】:
-
将所有代码直接作为文本发布在这里。
-
您每次尝试登录时都在遍历用户列表,我猜您会得到 2 次“错误”和“确定”,因为您使用的是 UserNo3 登录。使用 hashmap 而不是 List 来存储您的用户凭据。话虽如此,可能不是很安全。