返回数组中的值之和

时间:2015-10-06 01:14:26

标签: java arrays

我获得了一系列名称' array[]'具有未知数量的元素。我被要求返回数组中所有值的总和,并且我尝试编写一个for循环,覆盖数组中的所有值并将它们一起添加。我认为我正在思考这个问题,我应该能够在一个命令中做到这一点,但我无法记住。

以下是我给出的内容:

int arraySum(int[] array)

我试过了:

for(int i = 0; i <= array.length; i++){ 
    int sum = array[i]; 
} 
return sum;

6 个答案:

答案 0 :(得分:3)

你有问题:

int sum = array[i]; 

因为每次循环进行迭代时都要创建一个新变量sum。您应该在循环中使用它之前创建sum变量:

int arraySum( int[] array) {
   int sum = 0;
   for(int i = 0; i <= array.length; i++){ 
       sum = sum + array[i]; 
   } 

   return sum;
}

看看你必须把它初始化为零。

此外,请记住,数组从位置0 开始。因此,你应该使用

i < array.length

而不是

i <= array.length

在循环条件下。

我希望它会对你有所帮助!

答案 1 :(得分:3)

使用Java 8 Stream api,它在一行中给出了总和。

Arrays.stream(array).sum();

答案 2 :(得分:2)

这应该可以解决问题:

int arraySum( int[] array) {
    int sum = 0;
    for (int i : array) {
        sum += i;
    }
    return sum;
}

答案 3 :(得分:1)

您需要声明(并初始化sum)。通常,总和从0开始。然后,您可以使用for-each loop - 您可以像对于数组中的每个value一样阅读它,使用value执行某些操作 - 例如将其添加到sum。最后,返回sum。像,

int arraySum(int[] array) {
    int sum = 0;
    for (int value : array) {
        sum += value;
    }
    return sum;
}

或者,使用像

这样的index变量
int arraySum(int[] array) {
    int sum = 0;
    for (int index = 0; index < array.length; index++) {
        sum += array[index];
    }
    return sum;
}

或者,您可以将新的Java 8+ stream apiArrays.stream(int[])IntStream.sum()一起使用

int arraySum(int[] array) {
    return Arrays.stream(array).sum();
}

而且,正如@PaulBoddington指出的那样,您也可以使用IntStream.of(int...)IntStream.sum()

int arraySum(int[] array) {
    return IntStream.of(array).sum();
}

答案 4 :(得分:0)

sum的范围在for循环中。你应该在外面声明它以便使用它。

此外,sum的加法不正确以及for循环条件。

更新的代码应与以下内容类似

int sum = 0;    
for(int i = 0; i < array.length; i++){ 
        sum+ = array[i]; 
 } 
 return sum;

答案 5 :(得分:0)

在循环外声明变量sum,否则每次都会重新启动。另外,使用+=运算符添加自己。

int sum = 0; 
for(int i = 0; i <= array.length; i++){ 
   sum += array[i]; 
 } 
return sum;