【发布时间】:2019-11-11 21:08:42
【问题描述】:
我正在尝试打印 2 到 100 之间的所有质数,但我只得到 2 和 3。
我已经尝试了所有可能的替代方案,但它会出现不同的错误或不同的输出。
public static void main(String[] args) {
boolean flag = true;
for (int i = 2; i <= 100; i++) {
for (int j = 2; j < i; j++) {
if (i % j == 0) {
flag = false;
break;
}
}
if (flag) {
System.out.println(i);
}
}
}
我不需要任何替代方法,我只想知道我的代码中发生了什么以及为什么它只给出 2 和 3?
【问题讨论】:
-
你应该在内部循环之前将
flag重置回true -
一旦达到 4,
flag就被设置为false,而你再也不会将其设置为true。 -
最好在第一个循环中定义
flag。 -
@Zabuza:数字的代码格式?真的吗?拥有 12k 声誉,您应该知道得更多。