Java遞迴流程

來源:互聯網
上載者:User

標籤:例子   參數   .com   運算   exe   string   str   stat   n+1   

遞迴二字顧名思義就是:遞過去,歸回來、所以我索性叫它做有借有還吧。

 下面的例子由c而來:

                          public class Main {
                                public static void main(String[] args) {
                                      fun(1);
                                }

                               public static void fun(int n) {
                                      System.out.printf("1-lexe:%d \n", n);   //#1
                                      if (n < 3)
                                            fun(n + 1);
                                      System.out.printf("2-lexe:%d \n", n);   //#2
                                }

                          }

 

輸出的結果如下:

                     1-lexe:1
                     1-lexe:2
                     1-lexe:3
                     2-lexe:3
                     2-lexe:2
                     2-lexe:1

 

流程解讀:

 

            首先, main() 調用了函數 fun(1) ,於是fun(1)中形參 n 的值是 1, 故列印語句 #1 輸出了:1-lexe:1 

            然後,由於 n < 3 ,( 第 2 級 )的fun(n+1)被調用. 此時n+1=2,故列印語句 #1 輸出了:1-lexe:2。

            然後,由於 n < 3 ,( 第 3 級 )的fun(n+1)被調用. 此時n+1=3,故列印語句 #1 輸出了:1-lexe:3。

            由於此時,n=3 , 不再執行if語句。

            然後執行 #2 語句 , 因為此時 n 的值為 3 , 故列印語句 #2 輸出了: 2-lexe:3 。  ---------------------------這時完成了一個“遞過去”

 

            此時函數調用完成         

            現在函數需要“歸回來” , 回到最後一次調用函數的地方 , 即 n+1=2 的地方 , 故列印語句 #2 輸出了:2-lexe:2。

            再返回上一級調用的地方 , n =1 的地方 , 故列印語句 #2 輸出了:2-lexe:1。-----------------------------完成了一個“歸回來“

            

            其實他的”歸回來“的切入點就是函數的調用點 ,擷取此處的參數值 , 一級一級的往外突圍就出來了。

 

            下面附上一個運算的遞迴流程:http://www.cnblogs.com/OldZhao/p/5062582.html

 

Java遞迴流程

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.