2012-08-12 82 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++)