我做了一個函數,計算一個整數的數字的總和。試圖使代碼更短,我把評論if語句,看看是否仍然有效,所以我可以刪除它,但我得到StackOverflowError
,爲什麼? 這是我的代碼:爲什麼我得到一個StackOverflowError
public static int sumDigits(int n) {
//if(n%10==n){ return n;}
return n%10+sumDigits(n/10);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println(sumDigits(12611));
}
這很簡單:你得到一個StackOverflowError,因爲堆棧溢出。 – Ingo 2013-05-06 13:18:02
考慮一下:「1.呼吸,2.從本清單開始重新開始」。你什麼時候會停止呼吸? – 2013-05-06 13:18:24
這是一個經典的例子,如何強制stackoverflowexception,無限遞歸 – 2013-05-06 13:19:07