我想在java中创建一个简单的素数打印机,最后一个for循环给我一个错误。
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
ArrayList<Integer> primeNumbers = new ArrayList<Integer>();
primeNumbers.add(1);
for (int i = 2; true; i++){
for(int j = 2; j <= i; j++){
double a = i/j;
if(a % 1 == 0 && i != j) primeNumbers.add(i);
}
}
for (int value : primeNumbers) {
System.out.println(value);
}
}
}
为什么会这样?
答案 0 :(得分:2)
因为外部for
循环是无限的(即最后一个循环无法访问)。改变这个
for (int i = 2; true; i++) { // <-- infinite loop
类似
for (int i = 2; i < 1000; i++) { // 2 to 1000.
答案 1 :(得分:0)
这是因为您尝试引用primeNumbers
,ArrayList<Integer>
int
。它应该是:
for (Integer value : primeNumbers) {
System.out.println(value);
}
Integer
它与int
不同。看看这个:
What is the difference between an int and an Integer in Java and C#?