【发布时间】:2011-11-20 15:28:35
【问题描述】:
我正在尝试打印所有不是 7 或 9 倍数的奇数。它的工作原理是查看除以 2 时余数是否首先不是 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);
}
}
}
}
}
【问题讨论】:
-
这看起来像是作业,所以我只是给个提示。如果
i是 7 的倍数(例如 21),i % 7 !=0 || i % 9 != 0会评估什么?它应该评估什么?让它正常工作,其余的应该会掉出来。 -
它会打印它,因为虽然 21 可以被 7 整除,但它不能被 9 整除,所以我需要将它设置为它不能被 7 整除且不能被 9 整除。
标签: java if-statement for-loop