2014-07-08 17 views
-2
public class CoreTest { 

    /** 
    * @param args 
    */ 
    public static void main(String[] args) { 
     System.out.println(goFigure(60)); 
     } 

    public static int goFigure(int x) 
    { 
    if (x < 100) 
    x = goFigure(x + 10); 

    return (x - 1); 
    } 
} 

以上是java代碼,有JAVA方法,名爲goFigure()。我從main方法調用了這個方法。在這裏,我得到的輸出爲95.需要了解,retun語句後爲什麼會回到第二行

我調試此代碼,但面臨懷疑,即執行return語句後,它將轉至x = goFigure(x + 10)。需要了解爲什麼會這樣。

請讓我理解這個概念。

+7

其稱爲_recursion_ google一下 –

+0

調試代碼... – TheLostMind

+0

[點擊我(HTTP ://en.wikipedia.org/wiki/Recursion) – Maroun

回答

2
 goFigure(60) 
     goFigure(70) 
      goFigure(80) 
       goFigure(90) 
        goFigure(100) 
        return 99 
       return 98 
      return 97 
     return 96 
    return 95 

每個調用都有自己的參數x(也可能是局部變量)。

所以,如果你60達到100,需要5個遞歸調用,60 + 4×10 + 5×-1 = 95

相關問題