我想总结一个数组中的所有元素。 我需要输入int i = ______;
的空格才能使其工作?如何获得数组的总和?
public static int sumArray(int [] A){
int sum = 0;
int i = ___________ ;
while(i>=0){
sum = sum + A[i];
i--;
}return sum;
}
我想总结一个数组中的所有元素。 我需要输入int i = ______;
的空格才能使其工作?如何获得数组的总和?
public static int sumArray(int [] A){
int sum = 0;
int i = ___________ ;
while(i>=0){
sum = sum + A[i];
i--;
}return sum;
}
要回答你的问题,你应该设置int i
到A.length - 1
。您需要length - 1
,因为Arrays
的索引编号为0,这意味着单独使用length
会使您产生IndexOutOfBoundsException
。
你的方法应该是这样的:
public static int sumArray(int[] A) {
int sum = 0;
int i = A.length - 1;
while (i >= 0) {
sum = sum + A[i];
i--;
}
return sum;
}
但是,你可以做到这一点更清洁的方式。
1)使用Java 8,你可以使用IntStream
像这样:
public static int sumArray(int[] A) {
return IntStream.of(A).sum();
}
2)您可以使用for
循环:
public static int sumArray(int[] A) {
int sum = 0;
for(int i = 0; i < A.length; i++){
sum += A[i];
}
return sum;
}
3)您可以使用增强for
循环:
public static int sumArray(int[] A) {
int sum = 0;
for(int i : A){
sum += i;
}
return sum;
}
我想总结一个数组中的所有元素。我需要为'int i = ______'的空格输入什么内容做这个工作?
您应该通过做i = A.length - 1;
来指定数组A
到i
的大小。
或者,您可以使用for
循环代替while
。
这里是代码片段:
public static int sumArray(int [] A){
int sum = 0;
for(int x : A) {
sum += x;
}
return sum;
}
您已经编写代码即可获得总和。 i
只需要从A.length
开始。
还有很多其他的方式来获得总和:使用增强的“for each”循环;使用IntStream.of(A).sum()
;其他库方法。
它应该是'int i = A.length - 1;',参考我的答案,以通过迭代int []' – robotlos