我一直在从BoundsException获取java.lang.ArrayIndex异常:500

我一直在从BoundsException获取java.lang.ArrayIndex异常:500,java,arrays,Java,Arrays,我不断得到一个错误,数组超出了界限,我无法找出什么是错误的 int[] oddArray = new int[500];//holds all the odd numbers int[] primeArray = new int[500];//holds all the prime numbers int[] modArray = new int[500];//holds all the mod values int remainder, p = 0, x = 0

我不断得到一个错误,数组超出了界限,我无法找出什么是错误的

    int[] oddArray = new int[500];//holds all the odd numbers
    int[] primeArray = new int[500];//holds all the prime numbers
    int[] modArray = new int[500];//holds all the mod values
    int remainder, p = 0, x = 0;        

    //fills up the oddArray & modArray
    for(int n = 0; n < 500; n++)
    { 
        oddArray[n] = (n * 2) + 1;
        modArray[n] = (n* 2) + 1;
    }

    for(int i = 0; i  < 500; i++)
    {

        //finds prime numbers
        for(int n = 0 ; n < 500; n++)
        {   
            //divides the odd numbers by the current mod value
            remainder = oddArray[n] % modArray[x]; 

            //if remainder is not 0 it will place a value in prime array
            if(remainder != 0)
            {
                 primeArray[p] = oddArray[n];
                 p++; 
            }
        }

        //prints out list of odds/mod/and primes side by side
        System.out.println(oddArray[i] + " | " + modArray[i] + " | " + primeArray[p]);
        ++x;
    }
int[]oddArray=newint[500]//保存所有奇数
int[]素数数组=新的int[500]//保存所有素数
int[]modArray=新int[500]//保存所有mod值
整数余数,p=0,x=0;
//填充oddArray和modArray
对于(int n=0;n<500;n++)
{ 
oddArray[n]=(n*2)+1;
modArray[n]=(n*2)+1;
}
对于(int i=0;i<500;i++)
{
//查找素数
对于(int n=0;n<500;n++)
{   
//将奇数除以当前mod值
余数=ODDRARY[n]%modArray[x];
//若余数不是0,它将在素数数组中放置一个值
如果(余数!=0)
{
primeArray[p]=oddArray[n];
p++;
}
}
//并排打印赔率/模/和素数列表
System.out.println(oddArray[i]+“|”+modArray[i]+“|”+primeArray[p]);
++x;
}
这是错误代码

1 | 1 | 0

3 | 3 | 0

线程“main”java.lang.ArrayIndexOutOfBoundsException中的异常:500 在projectprime_v1.projectprime_v1.main(projectprime_v1.java:41) Java结果:1 生成成功(总时间:0秒)


您永远不会重置
p
,因此最终它将超过499,并导致异常。确保在循环中写入
p=0重置它。这同样适用于
x


希望这有帮助

您是否尝试使用调试器a)确定哪一行有问题,b)用于索引数组的变量值是什么?请参阅循环顶部的更新应答器。第一次运行时它已经是0了,但谁在乎呢。@draco18是对的。只要它在循环中的某个地方重置。