2015-10-14 53 views
-2

我正在製作一個猴子爬樹的程序。爲什麼程序拋出StackOverflowError?

10英尺需要10分鐘。他倒退3分鐘並休息10分鐘。

我寫的代碼當我在紙上追蹤它時,我認爲它工作,但是當我運行程序時返回堆棧溢出。

*編輯 - 好吧所以不知何故我不再得到堆棧溢出,但我沒有得到我需要的結果。無論poleHeight如何,它都會打印30。我試圖追蹤它,但我不知道我在哪裏犯了一個錯誤。

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); 

} 
+2

什麼是你的問題? –

+0

你測試了哪些數字?你必須使用一個非常大的數字來'poleHeight'來得到一個'StackOverflowError'。 –

+0

拋出異常,不返回。 – EJP

回答

0

如果你有堆棧溢出 - 這意味着無論你的基本情況是不正確的,或者您堆棧尺寸太小的任務(這不太可能)

+0

基本情況應該成立。我正在減去這個數字,所以最終它應該變成10呢? – cee

相關問題