为什么程序抛出StackOverflowError?

时间:2015-10-14 00:29:26

标签: java recursion stack stack-overflow

我正在开展猴子爬树的计划。

10英尺需要10分钟。他倒退3次,休息10分钟。

我编写的代码当我在纸上跟踪它时我觉得有用,但是当我运行程序时返回堆栈溢出。

*编辑 - 确定所以不知何故我不再获得堆栈溢出,但我没有得到我需要的结果。它打印30不管poleHeight。我试过跟踪它,但我没有看到我犯了什么错误。

for poleHeight = 18;

static double climbTime(double poleHeight){

    double time = 0.0;
    double t = 10.0;
    double climbed = 7.0;

    //base case
    if(poleHeight <= 10.0){
        time = poleHeight;  
    }
    else{
        poleHeight = poleHeight - climbed;
        t = t + 10.0;
        climbTime(poleHeight);
    }

    return (time + t + 10.0);

}

1 个答案:

答案 0 :(得分:0)

如果你有堆栈溢出 - 这意味着你的基本案例永远不会是真的,或者你的堆栈大小对于任务而言太小(这种可能性较小)