逻辑OR和模运算符在Java中表现异常

逻辑OR和模运算符在Java中表现异常,java,arrays,conditional-statements,Java,Arrays,Conditional Statements,我正在尝试用Java构建素数数组 if(c % 2 != 0 || c % 3 != 0 || c % 5 != 0) { n.add(c); } 但是我的程序似乎忽略了这个条件,只是将每个数字都添加到我的列表中。 但如果我只使用一个条件,例如 if(c % 2 != 0) 该代码完全可以忽略任何2的倍数。这里缺少什么?您需要使用逻辑and(&&&)而不是or(|),因为您希望在添加之前所有条件都为true 使用逻辑and,每个条件从左到右求值,直到找到一个匹配的为止。您需要使用逻

我正在尝试用Java构建素数数组

if(c % 2 != 0 || c % 3 != 0 || c % 5 != 0) {
     n.add(c);
}
但是我的程序似乎忽略了这个条件,只是将每个数字都添加到我的列表中。 但如果我只使用一个条件,例如

if(c % 2 != 0)

该代码完全可以忽略任何2的倍数。这里缺少什么?

您需要使用逻辑and(
&&&
)而不是or(
|
),因为您希望在添加之前所有条件都为true


使用逻辑and,每个条件从左到右求值,直到找到一个匹配的为止。

您需要使用逻辑and(
&&&
)而不是or(
|
),因为您希望在添加之前所有条件都为真


使用逻辑or,每个条件从左到右求值,直到找到一个匹配的条件。

如果数字不能被(2,3,5)中的任何一个整除,则您的条件现在求值为true。这适用于除(所有)2、3和5的倍数以外的所有数字。尝试使用逻辑and(
&&&
)而不是逻辑or(
|
)。

如果数字不能被(2,3,5)中的任何一个整除,则您当前的条件将计算为true。这适用于除(所有)2、3和5的倍数以外的所有数字。尝试使用逻辑and(
&&
)而不是逻辑or(
|