Java 返回数组的奇数并求和
我尝试将数组中的所有奇数相加并返回它。有没有想过我做错了什么 例如: 输入: 数组-[12,6,7,15,1] 它将返回23Java 返回数组的奇数并求和,java,arrays,return,Java,Arrays,Return,我尝试将数组中的所有奇数相加并返回它。有没有想过我做错了什么 例如: 输入: 数组-[12,6,7,15,1] 它将返回23 public static int sumOdds(int[] numbers) { sum = 0; for(int i = 0; i < numbers.length; i++) { if (numbers%2==0) return 0;
public static int sumOdds(int[] numbers) {
sum = 0;
for(int i = 0; i < numbers.length; i++) {
if (numbers%2==0)
return 0;
else (numbers[i] % 2 != 0) {
sum += numbers;
return sumOdds;
}
}
这应该行得通。返回语句不应包含在if和else语句中,因为它们将立即结束程序的执行
这应该行得通。返回语句不应包含在if和else语句中,因为它们将立即结束程序的执行。这里有一些问题。首先,mod操作在数组上不起作用。它需要在单个数字上执行。此外,在不允许整个循环完成的情况下,您将立即返回sumforbits 这会奏效的
public static int sumOdds(final int[] numbers) {
int sumOdds = 0;
for (int number : numbers) {
if (number % 2 != 0) {
sumOdds += number;
}
}
return sumOdds;
}
或者更好的方法是使用流
int sumOdds = IntStream.of(12, 6, 7, 15, 1).filter(number -> number % 2 != 0).sum()
这里有几个问题。首先,mod操作在数组上不起作用。它需要在单个数字上执行。此外,在不允许整个循环完成的情况下,您将立即返回sumforbits 这会奏效的
public static int sumOdds(final int[] numbers) {
int sumOdds = 0;
for (int number : numbers) {
if (number % 2 != 0) {
sumOdds += number;
}
}
return sumOdds;
}
或者更好的方法是使用流
int sumOdds = IntStream.of(12, 6, 7, 15, 1).filter(number -> number % 2 != 0).sum()
Java8+解决方案是 公共静态int sumOddsint[]数字{ 返回Arrays.streamnumbers.filtern->n%2==1.sum; }
Java8+解决方案是 公共静态int sumOddsint[]数字{ 返回Arrays.streamnumbers.filtern->n%2==1.sum; }
数字%2==0应该做什么?数字是数组,不是数字。即使要检查数组中的某个值,如果数组中有偶数,是否真的要返回0?此外,还应该将所有数字相加。但当你找到一个偶数或奇数时,你就会回来number@azurefrog如果数组中没有奇数,我想返回0。您的代码无法编译。返回sumforks wich是一个方法,但未找到参数。返回0将结束for循环,并在数组中的值第一次为偶数时退出该方法。数字%2==0应该做什么?数字是数组,不是数字。即使要检查数组中的某个值,如果数组中有偶数,是否真的要返回0?此外,还应该将所有数字相加。但当你找到一个偶数或奇数时,你就会回来number@azurefrog如果数组中没有奇数,我想返回0。您的代码无法编译。返回sumforks wich是一个方法,但未找到参数。返回0将结束for循环,并在数组中的值第一次为偶数时退出该方法。然后将名称sum更改为sumforks?sum在这里返回23,这不是你想要的吗?这几乎是正确的解决方案。只需使用int sum=0;类型初始化sum;。我需要将其返回给SumLobbs意味着什么?对不起,我的错误。然后将名称sum更改为SumLobbs?sum在这里返回23,这不是你想要的吗?这几乎是正确的解决方案。只需使用int sum=0;类型初始化sum;。我需要把它还给萨姆洛比是什么意思?对不起,我错了。