当我尝试运行一个循环来测试表的最大值时,出现错误。
表格为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 处,最后一个元素位于索引处(长度 - 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;
}
}
关于java - 测试表的最大值时出错?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28488448/