我想做的就是在用户输入“1”或“2”以外的任何内容时创建一个验证循环...但是当我测试程序时,无论我输入什么数字(包括1和2) ),验证循环提示。我是瞎子吗??我看不出这个语法有什么问题。
public static int getValidShiftNbr(String msg)
{
int nbr = IR4.getInteger(msg);
while ((nbr != 1) || (nbr != 2)) <===================================
{
System.err.println("Error: Please enter either 1 (for day shift) or 2 (for night shift)");
nbr = IR4.getInteger(msg);
}
return nbr;
}
最佳答案
如果您使用 OR ||
,则只需满足其中一个条件,在您的情况下,如果您输入 1
OR 2
条件将为true
。
您想使用 AND &&
运算符来确保它们都不是,如下所示:
while ((nbr != 1) && (nbr != 2))
或
while (!((nbr == 1) || (nbr == 2)))
此处,对于 1
和 2
之外的任何数字,条件均为 true
关于java - 将变量与整数进行比较时,!= 运算符似乎不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50147081/