问答详情
源自:5-8 递归函数(二)

递归函数的语句执行顺序特点

递归函数中,位于递归调用前的语句和各级被调用函数具有相同的执行顺序; 递归函数中,位于递归调用后的语句的执行顺序和各个被调用函数的顺序相反; 这段话什么意思?

提问者:小鱼先生2333 2016-05-18 16:51

个回答

  • 2016-05-18 18:27:27
    已采纳

    我是这样想的:

    这句话的时间节点为:递归调用

    调用前,就是顺序运行,你肯定明白。

    调用后,语句需要后一项的输出才能执行,所以是倒叙。

  • soonyh
    2017-07-20 14:23:09

    function num(n,m){

        console.log(n);

        if(n<m){

            num(n+1,m);

            console.log(n);

        }

    }

    num(2,5)  //2345432

     

    // 1.首先执行num(2,5),就是

    // console.log(2); ->  num(3,5);  ->  console.log(2);

        

    //执行num(3,5);  就是是相当于   console.log(3); -> num(4,5); -> console.log(3);

     

    //下面以此类推

    // console.log(2); -> console.log(3); -> num(4,5); -> console.log(3); ->  console.log(2); 

     

    // 然后就是

    // console.log(2); -> console.log(3); -> console.log(4); -> num(5,5); -> console.log(4); -> console.log(3); ->  console.log(2);

     

    // 最后就是

    // console.log(2); -> console.log(3); -> console.log(4); -> console.log(5); -> console.log(4); -> console.log(3); ->  console.log(2);