为什么我的Java代码中出现了ArrayIndexOutOfBoundsException?

时间:2013-10-03 00:29:41

标签: java arrays

为什么我收到此错误?

  

线程“main”中的异常java.lang.ArrayIndexOutOfBoundsException:3       在Vectores.main(Vectores.java:86)

我认为错误就在这里:

System.out.println("El Número mayor es:"+NMay);
System.out.println("El Número menor es:"+NMen);
if (NumP>0){
    System.out.println("Hay"+" "+NumP+" "+"Números Pares");}
else { System.out.println("No hay números Pares"); }
if (NumI>0){
    System.out.println("Hay"+" "+NumI+" "+"Números Impares");}
else { System.out.println("No hay números Impares"); }

for (i=0;i<N-1;i++){
    for (j=i+1;j<N;j++){
        if(Num[i]>Num[j]){
            aux=Num[i];
            Num[i]=Num[j];
            Num[j]=aux;
        }
    }
}

System.out.print("El Vector ordenado es: ");
for (ord=0;ord<N;ord++){
    System.out.print(Num[ord]+", ");
}

for(Imp=1;Imp<=N;Imp=Imp+2){
    SumI=SumI+Num[Imp];
}

System.out.print("La Suma de las Posiciones Impares es:"+SumI);

我已将文件设为here

1 个答案:

答案 0 :(得分:1)

for(Imp=1;Imp<=N;Imp=Imp+2){
    SumI=SumI+Num[Imp];
}

当你的Imp = N时,你试图访问非法的Num [N],因为你的数组包含从0到(N-1)的索引。 for循环中的stop-argument必须为Imp&lt; = N,因为它允许程序尝试访问Num [N]。