while循环和从java中的控制台读取

时间:2014-04-27 21:38:53

标签: loops while-loop

我正在尝试在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");
                }
            }

1 个答案:

答案 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");
}