2015-09-09 40 views
0

試圖遵循「藝術與科學Java」一書,我正在做一些練習程序。這項計劃的目的是在整數n閱讀和返回的數字Java中的DigitSum方法

數量
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

這個程序寫的是位數的總和而不是位數 – Blip

+0

Omg,對不起。重新編寫一個程序,將運行方法中的總和寫入一個用單獨的方法編寫數字的程序。猜猜我沒做好這個工作:D – Alex5207

回答

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; 

} 
+0

Omg,我很抱歉。重新編寫一個程序,將運行方法中的總和寫入一個用單獨的方法編寫數字的程序。猜測我沒有做好這項工作:D – Alex5207

+0

順便說一句,不需要將'dSum'作爲方法變量傳遞,你可以在你的方法中創建它。 –

+0

非常感謝你! – Alex5207