尝试遵循“Java的艺术和科学”一书,我正在做一些锻炼计划。此程序旨在读取整数n
并返回位数
import acm.program.*;
public class DigitSum extends ConsoleProgram {
public void run() {
println("This program tells you how many digits is in a number");
int n = readInt("Enter the number which you want to check: ");
int dSum =0;
println("The number of digits is: "+myMethod(n,dSum));
}
private int myMethod (int n, int dSum) {
while (n>0) {
dSum += n%10;
n /= 10;
}
return dSum;
}
}
有人可以告诉我为什么我的程序没有按预期工作吗?如果我运行它并将n
设置为555,则表示位数为15,这显然不正确。
答案 0 :(得分:1)
因为您正在添加5 + 5 + 5,即15。
如果您想要数字,那么您将需要使用计数器。
private int myMethod (int n, int dSum) {
int counter = 0;
while (n>0) {
dSum += n%10;
n /= 10;
counter++;
}
return counter;
}