具有两个值的 Java while 语句哨兵控制循环不会终止



这里我们试图检查输入的数据的有效性,但我不知道问题出在哪里。我想检查"数字"是"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))的逻辑范围内,所以我认为可能我使用了错误的"或"语句,所以尝试了其他或操作数,但这不起作用,(我不记得我做了这么多切换)我认为它出错了,或者逻辑上不起作用,或者没有什么区别
如何解决此问题?

您的逻辑不正确。number将不等于1或者它将不等于2总是正确的。这就是为什么while循环不会终止的原因。

您需要逻辑和运算符&&:

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

使得当number不是1number不是2时,循环将继续。

最新更新