gpt4 book ai didi

java - 测试表的最大值时出错?

转载 作者:行者123 更新时间:2023-12-01 11:55:24 24 4
gpt4 key购买 nike

当我尝试运行一个循环来测试表的最大值时,出现错误。

表格为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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com