首页 > 后端开发 > php教程 > 递归是不是隐藏着循环

递归是不是隐藏着循环

WBOY
发布: 2016-06-13 12:21:31
原创
1082 人浏览过

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

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 />
登录后复制

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

相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板