JavaScript从入门到精通(第3版)
上QQ阅读APP看书,第一时间看更新

4.6 递归函数

所谓递归函数就是函数在自身的函数体内调用自身。使用递归函数时一定要当心,处理不当将会使程序进入死循环。递归函数只在特定的情况下使用,如处理阶乘问题。

语法格式:

参数说明:

functionName:递归函数名称。

【例4.4】 递归函数的应用。(实例位置:资源包\TM\sl\4\04)

本实例主要使用递归函数取得10!的值。其中,10!=10*9!,而9!=9*8!,依此类推,最后1!=1。这样的数学公式在JavaScript程序中可以很容易使用函数进行描述,这里使用f(n)表示n!的值,当1<n<10时,f(n)=n*f(n-1);当n≤1时,f(n)=1。代码如下:

运行结果如图4.4所示。

图4.4 递归函数的应用

在定义递归函数时需要两个必要条件:

包括一个结束递归的条件。

如例4.4中的“if(num<=1)”语句,如果满足条件则执行“return 1;”语句,不再递归。

包括一个递归调用语句。

如例4.4中的“return f(num-1)*num;”语句,用于实现调用递归函数。