javascript - js  递归?通俗的描述递归,下面这个例子如何理解

查看:169
本文介绍了javascript - js  递归?通俗的描述递归,下面这个例子如何理解的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

function rec(x){
if(x!==1){
   console.log(x)
    rec(x-1)
   console.log(x) 
   }   
}
rec(5) //输出为5 4 3 2 2 3 4 5

解决方案

function rec(x){
    if(x!==1){
        console.log("test1:", x); 
        rec(x-1); 
        console.log("test2", x);
     } else {
         console.log("test", x);
     }
}
rec(5);

题主执行下这段代码,就能看到执行顺序了,当x>1时,满足if的判断,打印test1,然后递归调用rec(x-1),进入下一次循环,这里不会打印test2,直到x=1,打印test。然后开始执行rec(x-1)后面的部分的代码。
题主不嫌麻烦可以看如下的代码,基本上递归就是用一种优雅的方式做了下面代码做的事情。

function rec(x){
    if(x!==1){
        console.log("test1:", x); 
        //我把调用自身函数直接写进来
        var a = x - 1;
        if(a!==1){
            console.log("test1:", a);
            //我把调用自身函数直接写进来 
            var b = a - 1;
            if(b!==1) {
              ...
              ...
              ...
            }
            console.log("test2", a)
        }
        console.log("test2", x);
     } else {
         console.log("test", x);
     }
}
rec(5);

这篇关于javascript - js  递归?通俗的描述递归,下面这个例子如何理解的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆