Scanner input = new Scanner(System.in);
selection = input.nextInt();
while (selection != 1 || selection != 2 || selection != 3 || selection != 4){
System.out.println("*");
selection = input.nextInt();
}
上面的代码只是进入一个循环,无论我输入它只是重复自己。我可能在某个地方犯了一个愚蠢的错误,但我可能看不到它可能是因为睡眠不足。欢迎任何帮助,谢谢。
所有或标志已更改为&&迹象,但它仍然循环?
答案 0 :(得分:4)
替换
while (selection != 1 || selection != 2 || selection != 3 || selection != 4)
通过
while (selection != 1 && selection != 2 && selection != 3 && selection != 4)
选择!= 1 ||选择!= 2 is always
真because
选择`不能不是1而不是2.
答案 1 :(得分:1)
你的情况总是如此。对于您选择的任何数字,它总是不是1 或而不是2. 1 等于1,但它不等于2,所以条件为真,同样2是不等于1所以条件是真的。其他每个数字都不等于1 或 2,因此条件仍然正确。
答案 2 :(得分:1)
while
将执行该块。 selection != 1 || selection != 2
永远是真的。
我认为您希望将!=
更改为==
或更好
while (0 < selection && selection <= 4)