我正在运行这个程序来查找数组中的偶数,但我不希望我的程序检查数组的索引1。所以我这样做了,
int[] numbers = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 14 };
for (int i = 0; i < numbers.length; i++) {
if ((i != 1)){
if (numbers[i] % 2 == 0) {
System.out.print(numbers[i] + " ");
}
}
}
它给出了正确的输出,
4 6 8 10 12 14
但如果我添加其他条件以跳过索引1
和3
,
即,if ((i != 1) || (i != 3) )
然后if
块未执行,我得到以下输出,
2 4 6 8 10 12 14
而不是6 8 10 12 14
为什么if
块没有执行多个条件?
答案 0 :(得分:3)
if ((i != 1) || (i != 3) )
这总是如此。
i
既不是1也不是3,则两个条件均为真。i
为1,那么正确的条件为真。i
为3,则左边条件为真。也许你想要
if (!(i == 1 || i == 3))
相当于
if ((i != 1) && (i != 3))
答案 1 :(得分:2)
您的病情必须为if ((i != 1) && (i != 3) )
答案 2 :(得分:0)
它应该正常工作,因为i
变量不等于1或不等于3,对于所有数字都是如此。你的意思是写i != 1 && i != 3