首页 > 解决方案 > != 将变量与整数进行比较时,运算符似乎不起作用

问题描述

我要做的就是创建一个验证循环,如果用户输入“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;
  }

标签: javaoperator-keyword

解决方案


如果您使用 OR ||,它只需要满足其中一个条件,在您的情况下,如果您输入1OR 2,则条件将是true

您想使用 AND&&运算符来确保它们都不是,如下所示:

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

或者

while (!((nbr == 1) || (nbr == 2)))

这里的条件将是true1和之外的任何数字2


推荐阅读