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

4.5 递归函数

视频讲解

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

语法如下:

    function 函数名(参数1){
        函数名(参数2);
    }

例如,使用递归函数取得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。代码如下:

    01  function f(num){               //定义递归函数
    02     if(num<=1){                 //如果参数num的值小于等于1
    03         return 1;               //返回1
    04     }else{
    05         return f(num-1)*num;    //调用递归函数
    06     }
    07  }
    08  alert("10!的结果为:"+f(10));  //调用函数输出10的阶乘

本实例运行结果如图4.11所示。

图4.11 输出10的阶乘

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

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

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

 包括一个递归调用语句。

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