java - 将变量与整数进行比较时,!= 运算符似乎不起作用

标签 java operator-keyword

我想做的就是在用户输入“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)))

此处,对于 12 之外的任何数字,条件均为 true

关于java - 将变量与整数进行比较时,!= 运算符似乎不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50147081/

相关文章:

java - 如何在方法之间正确传递上下文以使用数据库存储库?

java - 如何提高股票数据传输应用程序的性能?

lua - [函数类 :me() end] equal to [function class. me(self) end] 在 lua 中吗?

operator-keyword - verilog 中的“<<”运算符

python - 按数值对 CSV 文件进行排序

java - 将笛卡尔像素数据数组转换为纬度/经度像素数据数组

java - 提取包含特定子字符串的每个完整单词

java - 在 set 方法中使用 Scanner.next() 并尝试在数组元素上调用它

java - 运算符和方法有什么区别?

c++ - 在一个类上重载 ostream << 并输出另一个类的数据