Exception in thread "main" java.lang.StackOverflowError 错误
问题这个函数中包含递归的内容,运行程序出现错误:Exception in thread “main” java.lang.StackOverflowError ,堆栈溢出。public static double showAn(int n) {if (n>1) {return a * (Math.pow(10, (n-1))) + showAn(n-1);}}...
·
问题
这个函数中包含递归的内容,运行程序出现错误:Exception in thread “main” java.lang.StackOverflowError ,堆栈溢出。
public static double showAn(int n) {
if (n>1) {
return a * (Math.pow(10, (n-1))) + showAn(n-1);
}
}
解决方法
由于没有明确n的范围,导致该递归会一直进行下去而出错。我补上了else来处理n<=1时的情况,使递归可以在n=1时停止。
public static double showAn(int n) {
if (n>1) {
return a * (Math.pow(10, (n-1))) + showAn(n-1);
}
else {
return a;
}
}
更多推荐
已为社区贡献1条内容
所有评论(0)