[英]Returning and Summing the Odd Numbers of an Array
我正在嘗試將所有奇數添加到數組中並返回它。 對我做錯了什么有任何想法嗎?
例子:
輸入:
數組- [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;
else (numbers[i] % 2 != 0) {
sum += numbers;
return sumOdds;
}
}
public static int sumOdds(int[] numbers) {
int sum = 0;
for(int i = 0; i < numbers.length; i++) {
if(numbers[i] % 2 != 0) {
sum += numbers[i];
}
}
return sum;
}
這應該有效。 return
語句不應該在你的if
和else
語句中,因為它們會立即結束程序的執行。
Java 8+ 解決方案將是
public static int sumOdds(int[] numbers) {
return Arrays.stream(numbers).filter(n -> n % 2 == 1).sum();
}
這里有幾個問題。 首先,mod 操作不適用於數組。 它需要在單個號碼上執行。 此外,您將立即返回 sumOdds 而不允許整個循環完成。
這會奏效。
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()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.