【问题标题】:Why am i getting this exception error ? ArrayOutOfBounds? [duplicate]为什么我会收到此异常错误? ArrayOutOfBounds? [复制]
【发布时间】:2019-12-16 04:57:04
【问题描述】:

我正在尝试检查数组中的整数是否在增加。但是我得到了 ArrayOutOfBounds 异常,我不明白为什么。我是编程新手。

for (int i =0; i > newArray.length ; i++){
    if (newArray[i] > newArray[i+1]){
        System.out.println("Not increasing");
    }
}

感谢您的帮助。

【问题讨论】:

  • 循环条件应该是i < newArray.length,但实际上循环甚至不应该为非零大小的数组执行。
  • 停止条件为 i
  • @TimBiegeleisen 是的,谢谢我从我的 IDE 复制了错误的代码。

标签: java arrays exception


【解决方案1】:

当您尝试访问数组中不存在的位置时,会发生 ArrayOutOfBounds 异常。

您的问题是newArray[i+1] 试图访问您的数组中不存在的位置。 我建议编辑条件i < newArray.length-1:当然,还有其他方法可以解决此问题,但这是最简单的。

【讨论】:

  • 我理解异常但我没有想到这一点,谢谢,它现在可以工作了
【解决方案2】:

假设你的数组长度是 8,所以位置是从 0 到 7 在 for 循环的最后一次运行中 i=7 和 i+1 =8 你没有 newArray[i+1] 你应该把第一个 if 放在一个新的 if 中

if(i<(newArray.length - 1)){
if (newArray[i] > newArray[i+1]){
System.out.println("Not increasing");
}
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-08
    • 1970-01-01
    • 1970-01-01
    • 2010-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多