关于求数组加和的问题

下面是我的代码

public class sz{
public static void main(String arg[]){
    int[] a={2,3,4,5,6,7,8,9,10};
    int sum=0;
for(int i=1;i<=a.length;i++){ 
     sum+=a[i];
System.out.println(a[i]);
}
System.out.println("加和:");
System.out.println(sum);
}
}

我想输出这个数组的加和,但我遇到了问题,如下图,请问如何解决

img

要 i<a.length, i = a.length 再访问 就数组越界了

public class sz{
public static void main(String arg[]){
    int[] a={2,3,4,5,6,7,8,9,10};
    int sum=0;
    for(int i=0;i<a.length;i++){ 
        sum+=a[i];
        System.out.println(a[i]);
    }
    System.out.println("加和:");
    System.out.println(sum);
}
}

数组下标越界:在for循环中,使用的是i<=a.length,因为数组的下标从0开始,所以应该改为i<a.length。
数组元素累加错误:在for循环中,使用了错误的下标a[i],因为数组的下标从0开始,应该改为a[i-1]。
以下是我修改后的代码


public class sz{
    public static void main(String arg[]){
        int[] a={2,3,4,5,6,7,8,9,10};
        int sum=0;
        for(int i=0;i<a.length;i++){ 
             sum+=a[i];
             System.out.println(a[i]);
        }
        System.out.println("加和:");
        System.out.println(sum);
    }
}

回答不易,望采纳!

for(int i=0;i<a.lenbgth;i++)

提示的错误是数组越界,数组a的下标是0-8,而你这里的循环是从1开始的,最后一个下标是9,需修改为for (i = 0; i < a.length; i++)即可。