美文网首页
php递归算法笔记

php递归算法笔记

作者: MenChem | 来源:发表于2016-09-02 10:30 被阅读51次

    递归函数为自调用函数,在函数体内直接或间接自己调用自己,但需要设置自调用的条件,若满足条件,则调用函数本身,若不满足则终止本函数的自调用,然后把目前流程的主控权交回给上一层函数来执行,可能这样给大家讲解,还是很难明白,直接上例子

    function test ($n){  
      echo $n."   ";   
     if($n>0){       
             test($n-1);   
      }else{       
             echo "<-->";    
     }    
          echo $n."  ";
     }
    
    test(2)
    
    

    这个例子最终的输出结果是2 1 0<-->0 1 2我解释下 为何输出是这样的
    第一步,执行test(2),echo 2,然后因为2>0,执行test(1), 后面还有没来得及执行的echo 2
    第二步,执行test(1),echo 1,然后因为1>0,执行test(0),同样后面还有没来得及执行的 echo 1
    第三步,执行test(0),echo 0,执行test(0),echo 0, 此时0>0的条件不满足,不在执行test()函数,而是echo “<-->”,并且执行后面的 echo 0此时函数已经不再调用自己,开始将流程的主控权交回给上一层函数来执行,也就是开始执行刚刚所有test()函数没来得及输出的最后一个echo,0的一层是1也就是输出1
    1的上一层是2 也就是输出2 2没有山一层 所以呢 输出的内容就是2 1 0<-->0 1 2

    相关文章

      网友评论

          本文标题:php递归算法笔记

          本文链接:https://www.haomeiwen.com/subject/qivhettx.html