1

我正在制作一个非常简单的 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] 并跟踪最低数字。提到的所有变量都是整型变量

4

3 回答 3

3

正确的代码是...

for(int i = 0; i < x; i++){
    if(TalArray[i] < min){
        min = TalArray[i];
    }
}
于 2012-08-12T22:59:52.887 回答
1

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

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

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

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

比较是错误的0 < x:你没有修改x循环内部的值,所以循环要么进入无限循环,要么根本不进入循环,这取决于x.

于 2012-08-12T23:00:15.990 回答
0

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

我想正确的条件是

for(int i = 0; i < x; i++)
于 2012-08-12T23:00:36.987 回答