java - 我该怎么做才能让我的程序不出现 IndexOutOfBounds 错误?

标签 java indexoutofboundsexception

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/

相关文章:

java - Java 和 Hibernate 中的 ArrayIndexOutOfBoundsException

java - 递增 ArrayList 时出现 IndexOutOfBoundsException

android-studio - Android Studio 1.5.1 Gradle错误:app:mergeDebugResources失败

java - 连续的服务器请求导致 hibernate 异常问题, session 的不安全使用

java - 麻烦,实现main方法的Driver类

java - 为什么 Grails 需要 Xerces?

java - 为什么我在此代码中收到 StringIndexOutOfBoundsException?

python - 为什么列表没有像字典一样的安全 "get"方法?

java - 阻止跨平台性的东西你的 java web 应用程序

java - 如何使用 Java 和 Maven 将所有 swagger 文件打包成一个文件