我正在尝试在java中为控制台应用程序创建一个大循环,它可以工作但是在每一步之后,例如在按下" a" (代码,对应于" a"字母)有效,但每次写入:"您的输入不正确,请再试一次",我不明白为什么
boolean inputIsValid = false;
while (!inputIsValid) {
String input = reader.readLine();
if (input.equals("a")) {
.....
}
if (input.equals("p")) {
.....
}
if (input.equals("q")) {
break;
}
else {
System.out.println("Your input is not correct, please try again");
}
}
答案 0 :(得分:2)
您的最终else
块仅与"q"
条件相关联,而不是与所有其他条件相关联。因此,每当输入不等于“q”时,它就会执行。
如果您逐步完成代码(下一次提示:),您会看到这种情况发生。
你想要一个真正的if-else链,如下所示:
if (input.equals("a")) {
.....
}
else if (input.equals("p")) {
.....
}
else if (input.equals("q")) {
break;
}
else {
System.out.println("Your input is not correct, please try again");
}