【发布时间】:2022-02-03 03:46:21
【问题描述】:
下面的代码在我运行时没有输出,我认为它不知何故是无限循环?如何解决?
编写一个名为 getEvenDigitSum 的方法,其中一个 int 类型的参数称为 number。
该方法应返回数字中偶数位的总和。
如果数字为负数,该方法应返回 -1 以指示无效值。
输入/输出示例:
-
getEvenDigitSum(123456789); → 应该返回 20,因为 2 + 4 + 6 + 8 = 20
-
getEvenDigitSum(252); → 应该返回 4,因为 2 + 2 = 4
-
getEvenDigitSum(-22); → 应该返回 -1,因为数字是负数
public class getEvenDigitSum {
public static int getEvenDigitSum(int number) {
int sum = 0;
int lastDigit=0;
if (number < 0) {
return -1;
}
while (number >0) {
lastDigit = number % 10;
if (number % 2 == 0)
{
sum += lastDigit;
number = number / 10;
}
}
return sum;
}
}
【问题讨论】:
-
你有什么问题?
-
return String.valueOf(number).chars().map(c -> c - '0').filter(n -> n % 2 == 0).sum(); -
使用调试器逐步检查您的代码,您很快就会发现问题所在。
标签: java