欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

JS递归函数的运行

程序员文章站 2022-03-12 19:57:26
递归函数什么是递归函数递归就是一个函数在它的函数体内自己调用自己。执行递归函数将反复调用其自身。递归函数必须有结束条件,否则会出现死循环。当函数在一直递推,直到遇到墙后返回,这个墙就是结束条件。所以递归要有两个要素,结束条件与递推关系。要实现递归要书写两个内容:一个是满足结束条件的时候结束函数;一个是不满足结束条件的时候要执行的代码;function sum(){console.log(1)sum()}sum()//sum()函数调用sum,执行sum里面的代码,打印1,又执...

递归函数


什么是递归函数

递归就是一个函数在它的函数体内自己调用自己。执行递归函数将反复调用其自身。递归函数必须有结束条件,否则会出现死循环。

当函数在一直递推,直到遇到墙后返回,这个墙就是结束条件。

所以递归要有两个要素,结束条件与递推关系。
要实现递归要书写两个内容:
一个是满足结束条件的时候结束函数;
一个是不满足结束条件的时候要执行的代码;

function sum(){
	console.log(1)
	sum()
}
sum()
//sum()函数调用sum,执行sum里面的代码,打印1,又执行sum,又打印1,又执行sum... 这种叫做死递归。
  1. 开始书写:写递归函数先要写一个结束条件(为了避免出现"死递归")
function add(n){
           // 当n===5的时候就要结束
           if(n===5){
                return 5;// `在这里插入代码片`
           	 }
            }
  1. 再写不满足条件我们的递归处理
function add(n){
           //add(n)这个函数的作用是:1到n的累加和
           //当n===5的时候就要结束
     	  if(n===5){
                return 5;
            }else{
                return add(n-1)+n;
              }
            }

递归案例

计算1到5的阶乘

function sum(n){
	if(n==1){
		return 1;
	}else{
		return n+sum(n-1);
	}
}
console.log(sum(5));

运行过程:

sum(5)

(5*sum(4))

(5*(4*sum(3)))

(5*(4*(3*sum(2))))

(5*(4*(3*(2*sum(1)))))

(5*(4*(3*2)))

(5*(4*(6)))

(5*24)

120

本文地址:https://blog.csdn.net/Web995/article/details/107282443