我获得了一系列名称' array[]
'具有未知数量的元素。我被要求返回数组中所有值的总和,并且我尝试编写一个for
循环,覆盖数组中的所有值并将它们一起添加。我认为我正在思考这个问题,我应该能够在一个命令中做到这一点,但我无法记住。
以下是我给出的内容:
int arraySum(int[] array)
我试过了:
for(int i = 0; i <= array.length; i++){
int sum = array[i];
}
return sum;
答案 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 api与Arrays.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;