Java 遞迴流程

2021-08-15 02:43:04 字數 872 閱讀 1914

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

下面的例子由c而來:

public class main

public static void fun(int n) }

輸出的結果如下:

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。-----------------------------完成了乙個「歸回來「

其實他的」歸回來「的切入點就是函式的呼叫點 ,獲取此處的引數值 , 一級一級的往外突圍就出來了。

下面附上乙個運算的遞迴流程:

java 遞迴詳解

example 求5的階乘。如下 public class test public static void main string args 上面的multiply是乙個階乘的例子。其實遞迴遞迴,從字面上解釋就是在方法本身呼叫自己的方法,或者間接呼叫 看上面的程式,拿multiply 5 來說 n ...

java 遞迴呼叫

遞迴呼叫是呼叫自身的函式,並傳給自身的相應的引數,這一運算過程是一層層的進行的,直到滿足一定條件時,才停止呼叫。遞迴函式的特點 1.函式要直接或間接呼叫自身。2.要有遞迴終止條件檢查,即遞迴終止的條件被滿足後,則不再呼叫自身函式。3.如果不滿足遞迴終止的條件,則呼叫涉及遞迴呼叫的表示式 在呼叫函式自...

java實現遞迴

遞迴,簡單的理解就是自己呼叫自己 主要分為兩部分,遞迴頭,遞迴的結束條件 遞迴體,自己呼叫自己的過程 1 最常見的就是階乘,比如求5的階乘,數學公式就是 5 4 3 2 1,public class digui else public static void main string args 2 求...