
上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;”语句,用于实现调用递归函数。