【发布时间】:2020-06-28 13:02:32
【问题描述】:
public static int sumDigits(int number) {
if(number < 10) {
return -1;
}
int sum = 0;
int remainder = 0;
while(number > 0) {
remainder = number % 10;
sum = sum + remainder;
number = number / 10;
}
return remainder;
}
我是 Java 编程的初学者,目前正在学习 while 循环逻辑。我很难理解这段代码。对于上下文,此代码将任何给定整数中的数字相加,例如 125 将给出 8 的输出,因为 1+2+5=8。
我不明白 while 部分,说数字是 125,余数应该是 5,因为 125 % 10 是 5,现在总和应该是 5,因为 0 + 5,数字应该是 12,因为它是一个 int。 Sum如何给出1+2+5?
我们将不胜感激!谢谢。
【问题讨论】:
-
只要数字大于零
number > 0,while 循环就会迭代。在循环的最后一行中,您看到number被重新签名,因此在下一次迭代中,number是12并且在下一个1中,这就是您得到5 + 2 + 1的结果的原因 -
使用调试器逐步完成。或者添加一些
println()来打印每次迭代的值。 -
@Johnny Mopp 你说的是实话。甚至用纸和铅笔逐句执行代码也可以让您获得洞察力,但打印语句或调试器会更好,因为您会发现这些变量的真正变化方式。
-
@Lino 谢谢你!我明白了
-
这能回答你的问题吗? How do I exit a while loop in Java?
标签: java while-loop