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);
}
}

谁能告诉我这是怎么回事??我不明白为什么我收到错误消息 "Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5 at dereks.main(dereks.java:7)" 。

4

3 回答 3

6

您收到错误是因为您的循环限制是<=array.length. 数组元素是 0 到array.length-1

于 2013-06-23T21:33:53.437 回答
4

数组索引从0. 这意味着最后一个元素位于array.length - 1

利用:counter < array.length

于 2013-06-23T21:34:21.383 回答
3

将您的 for 循环终止条件从更改<=<

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

或者更简单地说,使用 foreach 语法:

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

当您实际上不需要每个元素所在的索引时,首选 foreach 语法。

于 2013-06-23T21:39:37.037 回答