我想總結一個數組中的所有元素。 我需要輸入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