import java.util.Arrays;
public class Lab12st {
public static void main(String args[]) {
System.out.println("/nLab 12 80 Point Version \n");
final int MAX = 100;
boolean primes[];
primes = new boolean[MAX];
computePrimes(primes);
displayPrimes(primes);
}
public static void computePrimes(boolean listA[]) {
Arrays.fill(listA, true);
for (int j = 2; j < 100; j++) {
for (int k = 0; k <= 100; k += j) {
listA[k] = false;
System.out.println(listA[k + 1]);
}
}
}
}
我尝试使用不同的关系运算符,交换一些数字,但仍然得到 IndexOutofBounds
错误。我认为这是因为我有 100 个数组元素,列出了 0-99,但我不知道如何解决这个问题。任何帮助将不胜感激。
最佳答案
在您的内部循环中,条件导致了问题
for (int k = 0; k <= 100; k += j)
在每次迭代中,索引 k 都会增加等于 j 的值
由于数组大小在某些时候为 100,您将收到索引越界错误。
我的问题是为什么要执行这样的增量?您的代码实际上在做什么?
除此之外,您还应该留意这行代码并相应地调整 for 循环的条件
System.out.println(listA[k + 1]);
关于java - 我该怎么做才能让我的程序不出现 IndexOutOfBounds 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37105157/