逻辑OR和模运算符在Java中表现异常
我正在尝试用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,每个条件从左到右求值,直到找到一个匹配的为止。您需要使用逻
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(|
)