拿一個階乘的例子來說比較容易理解















上面的multiply是一個階乘的例子。其實就是遞歸,從字面上解釋就是在方法本身調用自己的方法,或者間接調用;看上面的程序,拿multiply(5)來說:
n=5;執行 5*multiply(4);
-------------------------------------------------------
這時候看multiply(4)
n=4 執行 4*multiply(3);
-------------------------------------------------------
看multiply(3)
n=3,執行 3*multiply(2);
-------------------------------------------------------
mulitply(2);
n=2 執行 2*mulitply(1);
這時候,return 1;往上返回
2*1向上返回
3*(2*1)向上返回
4*(3*(2*1)) 向上返回
5*(4*(3*(2*1)) ) = 120
所以程序輸出120;
這事簡單的遞歸的例子;所以可以看出來遞歸的關鍵得有遞歸出口(本體的If語句),還有遞歸方法.