2013-06-23 99 views
0
public class dereks { 
public static void main (String [] args){ 
    int array [] = {1,2,3,5,6,7}; 
    int sum =0; 
    for(int counter=0; counter<=array.length; counter++){ 
     sum+=array[counter]; 
    } 
    System.out.println(sum); 
} 
} 

任何人都可以告訴我這是怎麼回事?我無法理解爲什麼我在dereks.main(dereks.java:7)「得到錯誤消息」線程中的異常「main」java.lang.ArrayIndexOutOfBoundsException:5 「。線程「主」異常java.lang.ArrayIndexOutOfBoundsException:5

+0

你有一個錯誤的錯誤。嘗試手動查看代碼以查看問題所在。 – Vulcan

+0

數組在Java中是基於0的。 – Maroun

回答

3

更改您的循環中止條件從<=<

for(int counter=0; counter<array.length; counter++){ 
    sum+=array[counter]; 
} 

或者更簡單地說,使用的foreach語法:

for(int i : array){ 
    sum+=i; 
} 

在foreach語法是首選時,你實際上並不需要每個元素所在的索引。

+1

工作。謝謝你的幫助。 :-) –

+0

優秀......'='符號導致了問題。 –

6

由於循環限制爲<=array.length,您將收到錯誤消息。數組元素爲0到array.length-1

4

數組下標從0開始。這意味着最後一個元素是array.length - 1

用途:counter < array.length

相關問題