我做了一个函数,计算一个整数的数字的总和。试图使代码更短,我把评论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