- JavaScript從入門到精通(微視頻精編版)
- 明日科技
- 375字
- 2020-09-01 15:02:25
4.5 遞歸函數(shù)

視頻講解
所謂遞歸函數(shù)就是函數(shù)在自身的函數(shù)體內(nèi)調(diào)用自身,使用遞歸函數(shù)時一定要當心,處理不當會使程序進入死循環(huán),遞歸函數(shù)只在特定的情況下使用,如處理階乘問題。
語法如下:
function 函數(shù)名(參數(shù)1){ 函數(shù)名(參數(shù)2); }
例如,使用遞歸函數(shù)取得10!的值,其中10!=10*9!,而9!=9*8!,以此類推,最后1!=1,這樣的數(shù)學公式在JavaScript程序中可以很容易使用函數(shù)進行描述,可以使用f(n)表示n!的值,當1<n<10時,f(n)=n*f(n-1),當n≤1時,f(n)=1。代碼如下:
01 function f(num){ //定義遞歸函數(shù) 02 if(num<=1){ //如果參數(shù)num的值小于等于1 03 return 1; //返回1 04 }else{ 05 return f(num-1)*num; //調(diào)用遞歸函數(shù) 06 } 07 } 08 alert("10!的結(jié)果為:"+f(10)); //調(diào)用函數(shù)輸出10的階乘
本實例運行結(jié)果如圖4.11所示。

圖4.11 輸出10的階乘
在定義遞歸函數(shù)時需要兩個必要條件。
包括一個結(jié)束遞歸的條件。
如上面示例中的if(num<=1)語句,如果滿足條件則執(zhí)行“return 1;”語句,不再遞歸。
包括一個遞歸調(diào)用語句。
如上面示例中的“return f(num-1)*num;”語句,用于實現(xiàn)調(diào)用遞歸函數(shù)。
推薦閱讀
- The Complete Rust Programming Reference Guide
- Django+Vue.js商城項目實戰(zhàn)
- PostgreSQL Cookbook
- UML+OOPC嵌入式C語言開發(fā)精講
- Unity Game Development Scripting
- 軟件測試實用教程
- Oracle GoldenGate 12c Implementer's Guide
- Android移動開發(fā)案例教程:基于Android Studio開發(fā)環(huán)境
- Unity 5.X從入門到精通
- 計算機應(yīng)用基礎(chǔ)(第二版)
- Python預(yù)測分析實戰(zhàn)
- Java自然語言處理(原書第2版)
- Mastering Magento Theme Design
- Mastering Vim
- Splunk Developer's Guide(Second Edition)