为什么我会收到 "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 incl
到 array.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];
的行号吗?如果是,这就是您的答案 - i
是 10
.
如果您粘贴 stack trace
,请评论我的回答以获得进一步帮助。我会很乐意回答。
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 incl
到 array.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];
的行号吗?如果是,这就是您的答案 - i
是 10
.
如果您粘贴 stack trace
,请评论我的回答以获得进一步帮助。我会很乐意回答。