我怎样才能获得数组的总和?

时间:2016-03-30 22:50:25

标签: java arrays eclipse loops sum

我试图总结一个数组中的所有元素。 我需要为int i = ______;空白区域添加什么才能使其正常工作?

public static int sumArray(int [] A){

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

    }

3 个答案:

答案 0 :(得分:1)

  

我试图总结一个数组中的所有元素。对于'int i = ______;'的空白,我需要输入什么使这项工作?

您应该通过执行A将数组i的大小指定为i = A.length - 1;

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

以下是代码段:

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

答案 1 :(得分:0)

要回答您的问题,您应将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;
}

答案 2 :(得分:0)

您已经编写了代码以获得总和。 i只需从A.length开始。

还有很多其他方法可以获得总和:使用增强型&#34;每个&#34;环;使用IntStream.of(A).sum();其他图书馆方法。