全网整合营销服务商

营销型网站+SEO优化+关键词快排=一站式服务

免费咨询热线:15959292472

[开个seo公司赚钱吗]JS递归的用法详解

  

  

 

递归:

 

  函数中用调用函数自己,js教程此时就是递归,递归一定要有结束条件

  

 function f1() {
 console••●.log("从前有座山,山里有个庙-▼-●,庙里有个老和尚给小和尚讲故事:");
 f1()=▷○;
 };
 f1();//浏览器崩溃△▪▷●,因为没有结束条件——死循环
	改进如下:
	 var i=0□▪◇◆;
 function f1() {
 i++▷-…-;
 if (i<5){
 f1()●□■-;
 }
 console.log("从前有座山,山里有个庙,庙里有个老和尚给小和尚讲故事■■□=:");
 };
 f1();

 

  相关学习教程•◇…:javascript教程

  

小栗子:

 

  递归实现▪◆▷•:求n个数字的和 n=5 ------->5+4+3+2+1

  

//for 循环写法:
 var sum=0▽▷=;
 for (var i=0;i<=5△○;i++){
 sum+=i▽-=;
 }
 console.log(sum);
----------------------分割线---------------------------
 function getSum(x) {
 if (x==1){
 return 1
 }
 return x+getSum(x-1)◁=;
 }○…★;
 var sum1=getSum(5);
 console★…△.log(sum1)=◁■;
 console•=.log(getSum(10));

 

  执行过程△=▽●:
代码执行getSum(5)—>•▽☆…;进入函数=▷…,此时的x是5◇◁,执行的是5+getSum(4),此时代码等待
此时5+getSum(4)•=△■,代码先不进行计算★◇,先执行getSum(4),进入函数,执行的是4+getSum(3)○▽,等待○…◇, 先执行的是getSum(3),进入函数,执行3+getSum(2)★☆,等待▲△,先执行getSum(2),进入函数,执行 2+getSum(1)▽△◇▼;等待, 先执行getSum(1)△□,执行的是x==1的判断,return 1=•,所以,
此时getSum(1)的结果是1,开始向外走出去
2+getSum(1) 此时的结果是:2+1
执行:
getSum(2)---->□▷;2+1
3+getSum(2) 此时的结果是3+2+1
4+getSum(3) 此时的结果是4+3+2+1
5+getSum(4) 此时的结果是5+4+3+2+1

  

 结果◆■:15

 

  再来几个:

  

 //递归案例▪◁▷:求一个数字各个位数上的数字的和★…▽: 123 --->☆●●▲;6 ---1+2+3
 //523
 function getEverySum(x) {
 if(x<10){
 return x;
 }
 //获取的是这个数字的个位数
 return x%10+getEverySum(parseInt(x/10))□▷◆•;
 }
 console★■○▪.log(getEverySum(1364))☆•■;//5
 //递归案例…★:求斐波那契数列
 function getFib(x) {
 if(x==1

 

  x==2){ return 1 } return getFib(x-1)+getFib(x-2); } console=★▪.log(getFib(12))◇☆■;

递归:

 

  函数中用调用函数自己=•…,PS教程此时就是递归◁▽•▪,递归一定要有结束条件

  

 function f1() {
 console▲•★.log("◆▲;从前有座山,[开个seo公司赚钱吗]山里有个庙●▪•,庙里有个老和尚给小和尚讲故事:");
 f1()•▷;
 };
 f1()•▽;//浏览器崩溃,因为没有结束条件——死循环
	改进如下:
	 var i=0;
 function f1() {
 i++…■◇;
 if (i<5){
 f1()★…;
 }
 console.log("从前有座山,山里有个庙,庙里有个老和尚给小和尚讲故事:")-•☆;
 };
 f1()▲▼;

小栗子:

 

  递归实现☆◇●:求n个数字的和 n=5 ------->▼★◇■;5+4+3+2+1

  

//for 循环写法:
 var sum=0=▷•◇;
 for (var i=0;i<=5;i++){
 sum+=i…▼▲;
 }
 console○☆□◆.log(sum)==;
----------------------分割线---------------------------
 function getSum(x) {
 if (x==1){
 return 1
 }
 return x+getSum(x-1);
 };
 var sum1=getSum(5)◇◆◁;
 console.log(sum1);
 console.log(getSum(10));

 

  执行过程:
代码执行getSum(5)—>进入函数,此时的x是5,执行的是5+getSum(4)▽-,此时代码等待
此时5+getSum(4)◇=…▼,代码先不进行计算,先执行getSum(4)★▽□▽,进入函数▼■,执行的是4+getSum(3),等待▼■, 先执行的是getSum(3),进入函数-▷•=,执行3+getSum(2)☆○▲,等待,先执行getSum(2)◆•▼,进入函数,执行 2+getSum(1);等待, 先执行getSum(1),执行的是x==1的判断,return 1,所以,
此时getSum(1)的结果是1,开始向外走出去
2+getSum(1) 此时的结果是●□:2+1
执行:
getSum(2)---->2+1
3+getSum(2) 此时的结果是3+2+1
4+getSum(3) 此时的结果是4+3+2+1
5+getSum(4) 此时的结果是5+4+3+2+1

  

 结果▽◆:15

 

  再来几个◇•:

  

 //递归案例△◆•:求一个数字各个位数上的数字的和: 123 --->6 ---1+2+3
 //523
 function getEverySum(x) {
 if(x<10){
 return x;
 }
 //获取的是这个数字的个位数
 return x%10+getEverySum(parseInt(x/10));
 }
 console★•.log(getEverySum(1364));//5
 //递归案例:求斐波那契数列
 function getFib(x) {
 if(x==1

 

  x==2){ return 1 } return getFib(x-1)+getFib(x-2)…▪▼☆; } console.log(getFib(12));

 

  以上就是JS递归的用法详解的详细内容,[安庆市seo公司]如何卸载mysql更多请关注久澳传媒编程栏目其它相关文章!

[开个seo公司赚钱吗]JS递归的用法详解

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。