官术网_书友最值得收藏!

4.6 遞歸函數(shù)

所謂遞歸函數(shù)就是函數(shù)在自身的函數(shù)體內(nèi)調(diào)用自身。使用遞歸函數(shù)時一定要當(dāng)心,處理不當(dāng)將會使程序進入死循環(huán)。遞歸函數(shù)只在特定的情況下使用,如處理階乘問題。

語法格式:

參數(shù)說明:

functionName:遞歸函數(shù)名稱。

【例4.4】 遞歸函數(shù)的應(yīng)用。(實例位置:資源包\TM\sl\4\04)

本實例主要使用遞歸函數(shù)取得10!的值。其中,10!=10*9!,而9!=9*8!,依此類推,最后1!=1。這樣的數(shù)學(xué)公式在JavaScript程序中可以很容易使用函數(shù)進行描述,這里使用f(n)表示n!的值,當(dāng)1<n<10時,f(n)=n*f(n-1);當(dāng)n≤1時,f(n)=1。代碼如下:

運行結(jié)果如圖4.4所示。

圖4.4 遞歸函數(shù)的應(yīng)用

在定義遞歸函數(shù)時需要兩個必要條件:

包括一個結(jié)束遞歸的條件。

如例4.4中的“if(num<=1)”語句,如果滿足條件則執(zhí)行“return 1;”語句,不再遞歸。

包括一個遞歸調(diào)用語句。

如例4.4中的“return f(num-1)*num;”語句,用于實現(xiàn)調(diào)用遞歸函數(shù)。

主站蜘蛛池模板: 邵阳市| 赤城县| 鄂托克旗| 香港 | 阜康市| 邯郸市| 武义县| 海宁市| 苏尼特左旗| 福建省| 无极县| 新营市| 绍兴县| 楚雄市| 封开县| 丽水市| 阿坝县| 岱山县| 通渭县| 蕲春县| 奈曼旗| 岑溪市| 阳高县| 临高县| 鄂伦春自治旗| 昆山市| 安泽县| 伽师县| 苏尼特左旗| 长垣县| 陵水| 南丰县| 新营市| 巴彦县| 三亚市| 金川县| 马尔康县| 富顺县| 资中县| 高州市| 道孚县|