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