我在製作一個程序來查找素數。我將兩個ArrayList<Integer>
中的素數和所有正整數(現在直到100)存儲起來。下面的代碼:ArrayList:IndexOutOfBounds異常問題
import java.util.ArrayList;
public class PrimeNumbers {
static ArrayList<Integer> num = new ArrayList<Integer>();
static ArrayList<Integer> prime = new ArrayList<Integer>();
public static void main(String[] args) {
prime.add(2);
prime.add(3);
prime.add(5);
for (int z = 1; z<=100; z++){
num.add(z);
}
outer: for (int a = 1; a <=num.size(); a++){
inner: for (int b = 1; b <=prime.size(); b++){
if (num.get(a)%prime.get(b) != 0){//line 14
if (prime.indexOf(b)+1 == prime.size()){
prime.add(a);
continue outer;
}
else
continue inner;
}
else
continue outer;
}
}
System.out.println(prime);
}
}
但是當我運行該程序,這些錯誤顯示:
異常線程 「main」 java.lang.IndexOutOfBoundsException:指數:3,大小:3 在java.util.ArrayList.rangeCheck(ArrayList.java:653) 在java.util.ArrayList.get(ArrayList.java:429) 在PrimeNumbers.main(PrimeNumbers.java:14)
是什麼出錯了?
你可能會對我的簡短的[java調試教程](http://keysersblog.wordpress.com/2014/04/21/debugging-java-code-a-beginners-guide/)感興趣。我甚至使用IndexOutOfBoundsException作爲例子。另外,你可能不應該使用goto's(繼續x)。 – keyser
gotos在繼續嗎? –
是的,正如在繼續使用中一樣,還有標籤。這或多或少是一件遺物。 – keyser