尝试运行将测试表的最大值的循环时出现错误。
该表为tabl
,长度为c
。
int a=0;
int b=0;
while (a<=c) {
int d = tabl[a];
int e = tabl[a+1];
if(d < e)
b = e;
else
b = d;
a++;
}
这很简单,它首先比较
tabl[0]
和tabl[1]
,然后保存较大的一个,然后一直进行到直到表的长度a = c
,然后完成循环,将表中的最大值保存到表中。 b
。但是,当我运行此程序时,我得到一个
java.lang.ArrayIndexOutOfBoundsException
错误代码,有人可以帮忙吗?谢谢! 最佳答案
当您在循环中达到a = c - 1
时,您的代码正在寻找tabl[c-1]
和tabl[c]
的值。但是,由于表的长度为c
,因此会导致java.lang.ArrayIndexOutOfBoundsException
。请注意,在Java中,数组的索引为0,也就是说,第一个元素的索引为0,最后一个元素的索引为(length-1)。
您可以使用for-each构造编写类似的内容:
int max = 0;
for (int element : tabl) {
if (element > max) {
max = element;
}
}
或简单的for循环
int max = 0;
for (int i = 0; i < tabl.length; i++) {
int element = tabl[i];
if (element > max) {
max = element;
}
}