下面是我的代码
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);
}
}
我想输出这个数组的加和,但我遇到了问题,如下图,请问如何解决
要 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++)即可。