我遇到了ArrayIndexOutOfBounds问题。 我是编码的新手,我不完全理解这个问题,我无法修复它。任何帮助表示赞赏。
public class Primes {
public static void main(String[] args) {
final int SIZE = 10000;
boolean[] numberIsPrime = new boolean[SIZE];
int rowCounter = 0;
for( int index = 1; index <= SIZE; index++) {
numberIsPrime[index] = true;
}
for( int index = 2; index <= SIZE; index++) {
if( numberIsPrime[index] = true){
for( int i = index; i <= SIZE; i++){
numberIsPrime[index * i] = false;
}
}
}
for( int index = 1; index <= SIZE; index++){
if( numberIsPrime[index] = true){
System.out.println(index + " ");
rowCounter++;
if( rowCounter == 10){
System.out.println();
}
}
}
}
}
答案 0 :(得分:0)
您应该使用您正在使用的语言标记问题,但我会假设它是Java。问题是
boolean[] numberIsPrime = new boolean[SIZE];
...
for( int index = 1; index <= SIZE; index++) {
numberIsPrime[index] = true;
}
第一行将numberIsPrime声明为大小为10000的数组。这意味着您可以访问numberIsPrime[0], numberIsPrime[1], ... numberIsPrime[9999]
。您无法访问numberIsPrime[10000]
。