Java中的DigitSum方法

时间:2015-09-09 10:07:39

标签: java debugging variables methods parameters

尝试遵循“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,这显然不正确。

1 个答案:

答案 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;

}