Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我该怎么做才能使我的程序不出现IndexOutOfBounds错误? 导入java.util.array; 公共类Lab12st{ 公共静态void main(字符串参数[]){ System.out.println(“/nLab 12 80点版本\n”); 最终int最大值=100; 布尔素数[]; 素数=新布尔值[MAX]; 计算(素数); 显示素数(素数); } 公共静态void计算(布尔listA[]{ Arrays.fill(listA,true); 对于(int j=2;jk=140->break.@SashaSalauyou是的,这些循环让我困惑:)System.out、 println(listA[k+1])仍将抛出exception@JohnnyAW这应该可以。好的。我回家后会试试。非常感谢。这是为了一个学校实验室,如果我们更改他提供给我们的System.out.println(listA[k+1])的代码,我们的老师可能会很固执仍将抛出exception@JohnnyAW这应该可以。好的。我回家后会试试。非常感谢。这是为了一个学校实验室,如果我们更改他提供给我们的System.out.println(listA[k+1])的代码,我们的老师可能会很固执仍将抛出exception@JohnnyAW我意识到了这一点:我只是想发布一个快速回复,然后编辑我的文章answer@AngeloOparah我不会建议“100”在代码中,硬编码是不好的做法。list.length是解决方案。我们正在使用一种称为Eratosthenes方法筛的方法计算素数。从2开始,然后将等于2的倍数的布尔值更改为false,与3相同,依此类推,直到达到100。所有值在pr中保持为truegram是介于1和之间的所有时间100@D.Rodriguez好了,这是有道理的。谢谢分享System.out.println(listA[k+1])仍然会抛出exception@JohnnyAW我意识到了这一点:我只是想发布一个快速回复,然后编辑我的文章answer@AngeloOparah我不会建议“100”在代码中,硬编码是不好的做法。list.length是解决方案。我们正在使用一种称为Eratosthenes方法筛的方法计算素数。从2开始,然后将等于2的倍数的布尔值更改为false,与3相同,依此类推,直到达到100。所有值在pr中保持为truegram是介于1和之间的所有时间100@D.Rodriguez好了,这很有道理。谢谢分享_Java_Indexoutofboundsexception - Fatal编程技术网

我该怎么做才能使我的程序不出现IndexOutOfBounds错误? 导入java.util.array; 公共类Lab12st{ 公共静态void main(字符串参数[]){ System.out.println(“/nLab 12 80点版本\n”); 最终int最大值=100; 布尔素数[]; 素数=新布尔值[MAX]; 计算(素数); 显示素数(素数); } 公共静态void计算(布尔listA[]{ Arrays.fill(listA,true); 对于(int j=2;jk=140->break.@SashaSalauyou是的,这些循环让我困惑:)System.out、 println(listA[k+1])仍将抛出exception@JohnnyAW这应该可以。好的。我回家后会试试。非常感谢。这是为了一个学校实验室,如果我们更改他提供给我们的System.out.println(listA[k+1])的代码,我们的老师可能会很固执仍将抛出exception@JohnnyAW这应该可以。好的。我回家后会试试。非常感谢。这是为了一个学校实验室,如果我们更改他提供给我们的System.out.println(listA[k+1])的代码,我们的老师可能会很固执仍将抛出exception@JohnnyAW我意识到了这一点:我只是想发布一个快速回复,然后编辑我的文章answer@AngeloOparah我不会建议“100”在代码中,硬编码是不好的做法。list.length是解决方案。我们正在使用一种称为Eratosthenes方法筛的方法计算素数。从2开始,然后将等于2的倍数的布尔值更改为false,与3相同,依此类推,直到达到100。所有值在pr中保持为truegram是介于1和之间的所有时间100@D.Rodriguez好了,这是有道理的。谢谢分享System.out.println(listA[k+1])仍然会抛出exception@JohnnyAW我意识到了这一点:我只是想发布一个快速回复,然后编辑我的文章answer@AngeloOparah我不会建议“100”在代码中,硬编码是不好的做法。list.length是解决方案。我们正在使用一种称为Eratosthenes方法筛的方法计算素数。从2开始,然后将等于2的倍数的布尔值更改为false,与3相同,依此类推,直到达到100。所有值在pr中保持为truegram是介于1和之间的所有时间100@D.Rodriguez好了,这很有道理。谢谢分享

我该怎么做才能使我的程序不出现IndexOutOfBounds错误? 导入java.util.array; 公共类Lab12st{ 公共静态void main(字符串参数[]){ System.out.println(“/nLab 12 80点版本\n”); 最终int最大值=100; 布尔素数[]; 素数=新布尔值[MAX]; 计算(素数); 显示素数(素数); } 公共静态void计算(布尔listA[]{ Arrays.fill(listA,true); 对于(int j=2;jk=140->break.@SashaSalauyou是的,这些循环让我困惑:)System.out、 println(listA[k+1])仍将抛出exception@JohnnyAW这应该可以。好的。我回家后会试试。非常感谢。这是为了一个学校实验室,如果我们更改他提供给我们的System.out.println(listA[k+1])的代码,我们的老师可能会很固执仍将抛出exception@JohnnyAW这应该可以。好的。我回家后会试试。非常感谢。这是为了一个学校实验室,如果我们更改他提供给我们的System.out.println(listA[k+1])的代码,我们的老师可能会很固执仍将抛出exception@JohnnyAW我意识到了这一点:我只是想发布一个快速回复,然后编辑我的文章answer@AngeloOparah我不会建议“100”在代码中,硬编码是不好的做法。list.length是解决方案。我们正在使用一种称为Eratosthenes方法筛的方法计算素数。从2开始,然后将等于2的倍数的布尔值更改为false,与3相同,依此类推,直到达到100。所有值在pr中保持为truegram是介于1和之间的所有时间100@D.Rodriguez好了,这是有道理的。谢谢分享System.out.println(listA[k+1])仍然会抛出exception@JohnnyAW我意识到了这一点:我只是想发布一个快速回复,然后编辑我的文章answer@AngeloOparah我不会建议“100”在代码中,硬编码是不好的做法。list.length是解决方案。我们正在使用一种称为Eratosthenes方法筛的方法计算素数。从2开始,然后将等于2的倍数的布尔值更改为false,与3相同,依此类推,直到达到100。所有值在pr中保持为truegram是介于1和之间的所有时间100@D.Rodriguez好了,这很有道理。谢谢分享,java,indexoutofboundsexception,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

这条线是你的问题

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]);
            }
        }
    }
}
因此,您的解决方案是

listA.length
for(int j=2;j

如果您使用比较器“这条线就是您的问题

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]);
            }
        }
    }
}
因此,您的解决方案是

listA.length
for(int j=2;j

如果在内部循环中使用比较器“,则情况会导致问题

for (int j = 2; j < listA.length; j++)
    {
        for (int k = 0; k <listA.length; k += j)
        {
            listA[k] = false;
            if(k >= listA.length)
            {

                 System.out.println("THERE ARE NO VALUES AT K+1");
                  //Add what you want to do here if there are no more       values.                  
                   break; //this is a typical solution.
            }
        }
    }

在您的内部循环中,该条件正在导致问题

for (int j = 2; j < listA.length; j++)
    {
        for (int k = 0; k <listA.length; k += j)
        {
            listA[k] = false;
            if(k >= listA.length)
            {

                 System.out.println("THERE ARE NO VALUES AT K+1");
                  //Add what you want to do here if there are no more       values.                  
                   break; //this is a typical solution.
            }
        }
    }


替换
k并将
listA[k+1]
替换为
listA[k]
@SashaSalauyou这还不够……例如,当j=90和k=50时,它仍然会抛出异常,因为在内部for循环中,增量是k+=j@AngeloOparah不,条件是在后期操作完成后评估的,所以j=90,k=50->k=140->break.@SashaSalauyou是的,这些循环让我感到困惑:)替换
k并将
listA[k+1]
替换为
listA[k]
@SashaSalauyou这还不够……例如,当j=90和k=50时,它仍然会抛出异常,因为在内部for循环中,增量是k+=j@AngeloOparah不,条件是在后期操作完成后评估的,所以j=90,k=50->k=140->break.@SashaSalauyou是的,这些循环让我困惑:)
System.out、 println(listA[k+1])
仍将抛出exception@JohnnyAW这应该可以。好的。我回家后会试试。非常感谢。这是为了一个学校实验室,如果我们更改他提供给我们的
System.out.println(listA[k+1])的代码,我们的老师可能会很固执
仍将抛出exception@JohnnyAW这应该可以。好的。我回家后会试试。非常感谢。这是为了一个学校实验室,如果我们更改他提供给我们的
System.out.println(listA[k+1])的代码,我们的老师可能会很固执
仍将抛出exception@JohnnyAW我意识到了这一点:我只是想发布一个快速回复,然后编辑我的文章answer@AngeloOparah我不会建议“100”在代码中,硬编码是不好的做法。list.length是解决方案。我们正在使用一种称为Eratosthenes方法筛的方法计算素数。从2开始,然后将等于2的倍数的布尔值更改为false,与3相同,依此类推,直到达到100。所有值在pr中保持为truegram是介于1和之间的所有时间100@D.Rodriguez好了,这是有道理的。谢谢分享
System.out.println(listA[k+1])
仍然会抛出exception@JohnnyAW我意识到了这一点:我只是想发布一个快速回复,然后编辑我的文章answer@AngeloOparah我不会建议“100”在代码中,硬编码是不好的做法。list.length是解决方案。我们正在使用一种称为Eratosthenes方法筛的方法计算素数。从2开始,然后将等于2的倍数的布尔值更改为false,与3相同,依此类推,直到达到100。所有值在pr中保持为truegram是介于1和之间的所有时间100@D.Rodriguez好了,这很有道理。谢谢分享