为什么我不能遍历ArrayList

时间:2015-06-04 00:11:54

标签: java

我想在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);
			}
	}
}

为什么会这样?

2 个答案:

答案 0 :(得分:2)

因为外部for循环是无限的(即最后一个循环无法访问)。改变这个

for (int i = 2; true; i++) { // <-- infinite loop

类似

for (int i = 2; i < 1000; i++) { // 2 to 1000.

答案 1 :(得分:0)

这是因为您尝试引用primeNumbersArrayList<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#?