繁体   English   中英

数组索引超出界限但不应该

[英]Array index out of bounds but shouldn't be

我正在制作一个非常简单的java程序,我得到以下错误(其中n是基于控制台先前输入的随机数):

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: n

应该引起麻烦的一行是if语句:

for(int i = 0; 0 < x; i++){
    if(TalArray[i] < min){
         min = TalArray[i];
    }
}

变量“min”先前已初始化为TalArray [0]并跟踪最低数字。 提到的所有变量都是int变量

正确的代码是......

for(int i = 0; i < x; i++){
    if(TalArray[i] < min){
        min = TalArray[i];
    }
}

目前尚不清楚代码中x的值是什么,但无论如何,循环条件应如下所示:

for (int i = 0; i < TalArray.length; i++)

或者像这样,为了避免在每次迭代时访问长度:

for (int i = 0, x = TalArray.length; i < x; i++)

0 < x比较是错误的:你没有修改循环中x的值,所以循环将进入无限循环或根本不进入循环,具体取决于x的初始值。

问题是,你的变量X永远不会改变所以你的条件0 < x总是为true

我想正确的条件是

for(int i = 0; i < x; i++)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM