为什么我得到" ArrayOutOfBoundsException" (10)错误?

时间:2016-10-12 10:13:49

标签: java arrays processing indexoutofboundsexception

int array[] = {0,0,0,0,0,0,0,0,0,0}
if (array[9] == 0) {  //if the array is full, skip this
     currentVal = array[i]; //store current value in array
     i++;
} else {
     //store max value of array in medHigh
     for (int x = 0; x < 10; x++) {   
        if (array[x] > medHigh) {
        medHigh = array[x];
        }
     } 
}

1 个答案:

答案 0 :(得分:1)

很简单,因为您的数组长度为10,因此最大索引为9. Java中的数组是基于0的。这意味着它的索引是从0 inclarray.length - 1 incl,在您的情况下是9

Java为您提供了堆栈跟踪。它似乎跟随(顺便说一下, A L W A Y S 将其附加到关于Exception s的问题):

java.lang.ArrayIndexOutOfBoundsException: 10
at package.ClassName.methodName(ClassName.java:lineNumber)
...

行号是您拨打currentVal = array[i];的行数吗?如果是,那就是您的答案 - i10

如果您粘贴stack trace,请评论我的回答以获得进一步的帮助。我会高兴地回答。