java - != 将变量与整数进行比较时,运算符似乎不起作用
问题描述
我要做的就是创建一个验证循环,如果用户输入“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)))
这里的条件将是true
除1
和之外的任何数字2
推荐阅读
- ios - 通过 Firebase 函数发送的 Swift 中的加密推送通知
- django-templates - 未找到带有参数 '(' ',)' 的 'files' 的修订版。尝试了 1 种模式:
- ssl - 如何禁用 ssl 证书并仅用于转发 Nginx 中端口 443 上的流量?
- visual-studio - 无法从云端打开 Web 应用程序
- java - 杰克逊 - 接受对象属性上的空字符串
- arrays - 如何通过迭代在字典键值中使用 switch case
- google-apps-script - 正确编写 onEdit
- c++ - 模板专业化不匹配错误
- java - 如何通过单个命令为文件夹中的所有 thrift 文件生成所有类?
- django - 在 Django 中使用 PostgreSQL 聚合表达式