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

Why am I getting "ArrayOutOfBoundsException" (10) error?

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];
        }
     } 
}

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

Java 给了你一个堆栈跟踪。它看起来像以下(顺便说一下,A L W A Y S 将其附加到关于 Exceptions 的问题上):

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

行号是你调用currentVal = array[i];的行号吗?如果是,这就是您的答案 - i10.

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