我正在尝试创建一种菜单。如果菜单中没有选项被选中,那么它应该继续重复选项。然而,这个while循环并没有终止,我不确定为什么。
我怀疑它与我如何比较我的注意事项有关。
Scanner s = new Scanner(System.in);
int inp = s.nextInt();
while (inp != 1 || inp != 2 || inp != 3 || inp != 4) {
System.out.println("Not one of the options");
System.out.println("Please choose an option:");
System.out.println("\t1) Edit Property");
System.out.println("\t2) View More info on Property");
System.out.println("\t3) Remove Property");
System.out.println("\t4) Return");
s = new Scanner(System.in);
inp = s.nextInt();
}
答案 0 :(得分:4)
inp != 1 || inp != 2
这种情况总是如此:
您需要&&
,而不是||
。
或者您也可以使用
while (!(inp == 1 || inp == 2 || inp == 3 || inp == 4))
或更简单:
while (inp < 1 || inp > 4)
答案 1 :(得分:3)
尝试将||
替换为&&
,如下所示:
while(inp != 1 && inp != 2 && inp != 3 && inp != 4 ){
因为||
的第一个条件始终是真的。
答案 2 :(得分:0)
你需要使用&amp;&amp;检查。无论什么输入,4或语句中的至少3个都是真的,因此循环将再次循环
答案 3 :(得分:0)
除了使用&&
的其他答案之外,您可以删除否定因为您要检查“而不是任何这些选项”,即“不(或 或 somethingElse)“
while (!(inp == 1 || inp == 2 || inp == 3 || inp == 4))) {
}
答案 4 :(得分:0)
你的病情错误,
这个:
while (inp != 1 || inp != 2 || inp != 3 || inp != 4) {
必须替换为
while (inp != 1 && inp != 2 && inp != 3 && inp != 4) {