while (true) {
String password = "carrot";
String inputtedPassword = reader.nextLine();
System.out.println("Type the password:");
if (password.equals(inputtedPassword)) {
System.out.println("Right!");
} else {
System.out.println("Wrong!");
}
if (password.equals(inputtedPassword)) {
break;
}
}
我正在做一个要求代码不断询问正确的密码"直到它被正确地给出,然后它可以停止询问。这是我编写的代码,当我执行它时它会做它应该做的事情,但是当我提交它时,我收到一条错误消息,说明"程序应该一直询问密码,直到它被正确地给出"。我很困惑。
答案 0 :(得分:0)
您应该只运行代码并查看结果是否是预期的结果!
如果你这样做,你会看到它输入密码后输入“输入密码:” 。这是在打印前调用nextLine
引起的。
你应该重新排序这两行:
System.out.println("Type the password:");
String inputtedPassword = reader.nextLine();
除此之外,您的代码似乎完美无缺。
但是,有些行是多余的。
此:
if (password.equals(inputtedPassword)) {
System.out.println("Right!");
} else {
System.out.println("Wrong!");
}
if (password.equals(inputtedPassword)) {
break;
}
可缩短为:
if (password.equals(inputtedPassword)) {
System.out.println("Right!");
break;
} else {
System.out.println("Wrong!");
}
此外,如果永远不会更改,我建议您将password
更改为常量:
final String PASSWORD = "carrot";