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

标签 java arrays eclipse exception while-loop

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

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

相关文章:

jquery - 使用 jQuery .each() 解析 JSON 数组

Eclipse Juno 在闪屏后崩溃

android - 在 eclipse 中启动 avd 时缺少特定于 arch 的模拟器程序错误

java - 使用 MVC 架构填充 GUI 中的表

ios - iOS Swift:如何在键值多维数组中返回最大值?

Java NoClassDefFoundError 与 SSL 连接

javascript - jQuery 将字段数据添加到数组中以显示在 textarea 下

eclipse - Ubuntu 上 Eclipse Pane 中的非常大的选项卡

java - cucumber-jvm 版本 3 将简单表的设计模式替换为 Map<String,String> 操作

java - 我应该使用哪个 InitialContextFactory?