0

在这里,我们正在尝试检查已输入数据的有效性,但我无法弄清楚问题可能是什么。我想检查“数字”是“1”还是“2”,如果没有重复提示,直到输入正确的数据。问题是一旦输入了正确的数据,它就应该跳出循环,但我发现它仍然在循环中。我已经发布了代码并且可以发布更多以供理解。

while (( number != 1) || (number != 2)) // Check validity
{
   System.out.println ( "Number must be a 1 or a 2"); 
   System.out.print( "Enter number: " );
   number = input.nextInt();              
}  // end of while check validity

我已经分别测试了语句while(number != 1)while(number !=2)它似乎工作正常,所以问题似乎在语句的逻辑范围内while(( number !=1) || (number != 2)),所以我想也许我使用了错误的“或”语句,所以尝试了其他的或操作数,这没有用,而且(我不记得我做了这么多的切换)我认为它出错了,或者在逻辑上也没有工作,或者没有任何区别。
我该如何解决这个问题?

4

1 回答 1

7

你的逻辑不正确。numberwill not equal 1OR it will not equal总是正确的2。这就是为什么您的while循环不会终止的原因。

您需要逻辑与运算符&&

while (( number != 1) && (number != 2))

因此,当number不是1ANDnumber不是时2,循环将继续。

于 2013-08-16T23:59:56.573 回答