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

时间:2012-08-12 22:56:43

标签: java arrays exception indexoutofboundsexception

我正在制作一个非常简单的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变量

3 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:1)

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

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

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

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

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

答案 2 :(得分:0)

问题是,你的变量X永远不会改变 您的条件0 < x始终为true

我猜正确的条件是

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