2016-03-30 106 views
-2

我想總結一個數組中的所有元素。 我需要輸入int i = ______;的空格才能使其工作?如何獲得數組的總和?

public static int sumArray(int [] A){ 

     int sum = 0; 
     int i = ___________ ; 
     while(i>=0){ 
      sum = sum + A[i]; 
      i--; 
     }return sum; 

    } 
+0

它應該是'int i = A.length - 1;',參考我的答案,以通過迭代int []' – robotlos

回答

0

要回答你的問題,你應該設置int iA.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; 
} 
1

我想總結一個數組中的所有元素。我需要爲'int i = ______'的空格輸入什麼內容做這個工作?

您應該通過做i = A.length - 1;來指定數組Ai的大小。

或者,您可以使用for循環代替while

這裏是代碼片段:

public static int sumArray(int [] A){ 
    int sum = 0; 
    for(int x : A) { 
     sum += x; 
    } 
    return sum; 
} 
0

您已經編寫代碼即可獲得總和。 i只需要從A.length開始。

還有很多其他的方式來獲得總和:使用增強的「for each」循環;使用IntStream.of(A).sum();其他庫方法。