2013-06-23 84 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

相关问题