我想在Java中建立一个素数的数组。逻辑OR和模运算符在Java中表现奇怪
if(c % 2 != 0 || c % 3 != 0 || c % 5 != 0) {
n.add(c);
}
但我的程序似乎忽略了条件,只是将每个数字添加到我的列表中。 但如果我只是用例如一个条件,
if(c % 2 != 0)
代码工作完美地忽略任何数量是2的倍数缺少什么我在这里?
我想在Java中建立一个素数的数组。逻辑OR和模运算符在Java中表现奇怪
if(c % 2 != 0 || c % 3 != 0 || c % 5 != 0) {
n.add(c);
}
但我的程序似乎忽略了条件,只是将每个数字添加到我的列表中。 但如果我只是用例如一个条件,
if(c % 2 != 0)
代码工作完美地忽略任何数量是2的倍数缺少什么我在这里?
您需要使用逻辑和(&&
)而不是或(||
),因为您希望在添加之前所有条件都为真。
随着逻辑或,每个条件从左到右评估,直到找到一个匹配。
如果数字不能被(2,3,5)中的任何一个整除,您的条件现在计算为真。这适用于除(所有)2,3和5的倍数之外的所有数字。尝试逻辑和(&&
)而不是逻辑或(||
)。
干杯,今天早上一定是走错了床。 – devilcrack 2010-02-24 15:57:02