This question already has answers here:
What causes a java.lang.ArrayIndexOutOfBoundsException and how do I prevent it?
(25个答案)
3年前关闭。
我尝试使用不同的关系运算符,切换一些数字,但仍然出现
在每次迭代中,索引k递增等于j的值
由于数组大小在某些时候为100,因此您将获得index-out-of-bounds错误。
我的问题是为什么要执行这样的增量?您的代码实际上在做什么?
除此之外,您还应注意这一行代码并相应地调整for循环的条件
(25个答案)
3年前关闭。
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,因此您将获得index-out-of-bounds错误。
我的问题是为什么要执行这样的增量?您的代码实际上在做什么?
除此之外,您还应注意这一行代码并相应地调整for循环的条件
System.out.println(listA[k + 1]);
09-16 17:30