Home >Backend Development >PHP Tutorial >递归是不是隐藏着循环

递归是不是隐藏着循环

WBOY
WBOYOriginal
2016-06-13 12:21:311087browse

递归是否隐藏着循环
先看代码

function reverse($str){<br />  if(strlen($str)>0){<br />    reverse(substr($str,1));<br />    echo substr($str,0,1);<br />    return;<br />  }<br />}<br />reverse("abcdefg");//gfedcbc

上例中,我认为理解是有循环的意思,比如当代进去abcdefg这个实参后,reverse函数首先计算是否等于0,如果等就算了,如果大就开始,此处7位数大于0,所以首先输入啥呢,不对,还是有点晕,这个如何理解呢,乱七八糟的,在逻辑上实在是不可思议

------解决思路----------------------
动手,是学习计算机技术的首要条件
你把函数改一下
function reverse($str){<br />  echo "传入 $str\n"; //这里<br />  if(strlen($str)>0){<br />    reverse(substr($str,1));<br />    echo "\n返回时 $str\n";; //这里<br />    echo substr($str,0,1);<br />    return;<br />  }<br />}<br />reverse("abcdefg");//gfedcbc
传入 abcdefg<br />传入 bcdefg<br />传入 cdefg<br />传入 defg<br />传入 efg<br />传入 fg<br />传入 g<br />传入 <br /><br />返回时 g<br />g<br />返回时 fg<br />f<br />返回时 efg<br />e<br />返回时 defg<br />d<br />返回时 cdefg<br />c<br />返回时 bcdefg<br />b<br />返回时 abcdefg<br />a<br />

一目了然!
这是你冥思苦想几天几夜都不能理解的

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn