2012-08-12 85 views
1

我正在做一个很简单的java程序,我得到以下错误(其中ñ是基于从控制台先前输入的随机数):数组索引越界,但不应该是

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

是应该引起麻烦的行是if语句这里:最低数目的

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

变量“分钟”被预先initzialized到TalArray [0]和被跟踪。所提及的所有变量都是INT-变量

+4

如果'x'是正数,'0 pb2q 2012-08-12 22:58:07

+1

循环确实终止 - 通过抛出ArrayIndexOutOfBoundsException – 2012-08-12 23:07:19

回答

3

正确的代码...

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

oups:S我感到尴尬^^' – 2012-08-12 23:05:49

+0

哈哈它碰巧是我们最好的... – 36redsoxfan 2012-08-12 23:13:11

1

目前还不清楚是什么的x在代码中的值,但无论如何循环条件应该是这样的:

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

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

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

0 < x比较错误:您没有修改循环内的x的值,因此根据初始值x,循环将进入无限循环或根本不进入循环。

0

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

我想正确的条件将是

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