2016-03-30 72 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();其他库方法。