您的位置是:网站首页>Javascript编程Javascript编程

JavaScript如何使用递归

少儿编程网2021-06-24 13:34:21Javascript编程 人已围观 来源:少儿编程 -用户投稿

简介本篇文章给大家介绍一下JavaScript递归的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。递归:函数中用调用函数自己,此时就是递归,递归一定要有结束条件functionf1(){console.log(从前有座山,山里有个庙,庙里有个老和尚给小和尚讲故事:&q

本篇文章给大家介绍一下JavaScript递归的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。QE0少儿编程网-https://www.pxcodes.com

QE0少儿编程网-https://www.pxcodes.com

递归:

函数中用调用函数自己,此时就是递归,递归一定要有结束条件QE0少儿编程网-https://www.pxcodes.com

    function f1() {
        console.log("从前有座山,山里有个庙,庙里有个老和尚给小和尚讲故事:");
        f1();
    };
    f1();//浏览器崩溃,因为没有结束条件——死循环

	改进如下:
	    var i=0;
    function f1() {
        i++;
        if (i<5){
            f1();
        }
        console.log("从前有座山,山里有个庙,庙里有个老和尚给小和尚讲故事:");
    };
    f1();

小栗子:

递归实现:求n个数字的和 n=5 ------->5+4+3+2+1QE0少儿编程网-https://www.pxcodes.com

//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),此时代码等待QE0少儿编程网-https://www.pxcodes.com

此时5+getSum(4),代码先不进行计算,先执行getSum(4),进入函数,执行的是4+getSum(3),等待,先执行的是getSum(3),进入函数,执行3+getSum(2),等待,先执行getSum(2),进入函数,执行 2+getSum(1);等待,先执行getSum(1),执行的是x==1的判断,return 1,所以,QE0少儿编程网-https://www.pxcodes.com

此时getSum(1)的结果是1,开始向外走出去QE0少儿编程网-https://www.pxcodes.com

2+getSum(1) 此时的结果是:2+1QE0少儿编程网-https://www.pxcodes.com

执行:QE0少儿编程网-https://www.pxcodes.com

getSum(2)---->2+1QE0少儿编程网-https://www.pxcodes.com

3+getSum(2) 此时的结果是3+2+1QE0少儿编程网-https://www.pxcodes.com

4+getSum(3) 此时的结果是4+3+2+1QE0少儿编程网-https://www.pxcodes.com

5+getSum(4) 此时的结果是5+4+3+2+1QE0少儿编程网-https://www.pxcodes.com

    结果:15

再来几个:QE0少儿编程网-https://www.pxcodes.com

    //递归案例:求一个数字各个位数上的数字的和:  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));

【推荐学习:javascript高级教程】

以上就是JavaScript如何使用递归的详细内容,更多请关注少儿编程网其它相关文章!QE0少儿编程网-https://www.pxcodes.com

来源:php中文网QE0少儿编程网-https://www.pxcodes.com


相关文章:

支持一下 ( )

JavaScript如何使用递归

      匿名评论
    • 评论
    人参与,条评论
    JavaScript如何使用递归

微信公众号

免费视频教程

先知道