1 回答
TA贡献1794条经验 获得超8个赞
首先对代码格式提出一些小建议,在每个花括号/代码块之后留下一个空行 - 它会更容易阅读
因此,让我们通过遵循以下步骤来稍微清理一下您的代码:
先做更简单的任务,这意味着这个应用程序中有很多用户,但只有一个经理,所以也许我们应该先检查是不是他,而不是浪费计算资源
删除多余的变量 - 要打破循环,您不需要
check
变量,只需break
正确登录后的语句您可以使用 for each 来遍历集合
while (true) {
screen.displayString("Enter the username: ");
String usernameLogin = keypad.getString();
screen.displayString("Enter the password: ");
String passwordLogin = keypad.getString();
if (manager.getUsername().equals(usernameLogin) && manager.getPassword().equals(passwordLogin)) {
no = manager.getId();
break;
}
for (User user : users) {
if (user.getUsername().equals(usernameLogin) && user.getPassword().equals(passwordLogin)) {
no = users.get(i).getId();
break;
}
}
screen.displayStringLine("Incorrect username or password. Try Again!");
}
此代码应该更易于调试 - 只需在包含if语句的两行上放置 2 个断点并检查值是否匹配。如果您发现一切看起来都不错,请检查字符串编码 - 可能存在不匹配(Java 默认使用 UTF8)
添加回答
举报