if语句Java ForLoop错误
我试着打印出所有不是7或9的倍数的奇数。它的工作原理是,当余数被二除时,先看余数是否不是0,然后给出奇数
但是当我用它来显示数字,如果它们不是7的倍数,它只会显示所有的奇数,我犯了错误吗
public class NoMultiples7and9 {
public static void main(String[] args) {
for (int i = 1; i <= 30; i++) {
if (i % 2 != 0) {
if (i % 7 != 0 || i % 9 != 0) {
System.out.println(i);
}
}
}
}
}
# 1 楼答案
你需要在比较中使用AND而不是OR。在比较
i % 7 != 0 || i % 9 != 0
中,即使i mod 7是0,i mod 9也可能不是,反之亦然# 2 楼答案
# 3 楼答案
使用以下命令更改代码:
请注意
&&
(AND)而不是||
(OR)的用法,以及i % 2
的无用之处,因为通过稍微改变for
循环,只能循环奇数# 4 楼答案
如果你的内在陈述是错误的,它将导致所有不能被7和9整除的奇数被打印出来。我打赌如果你把循环改成63,它就不会打印出63。也不需要初始%2检查