递归是不是隐藏着循环
程序员文章站
2022-05-08 19:15:46
...
递归是否隐藏着循环
先看代码
上例中,我认为理解是有循环的意思,比如当代进去abcdefg这个实参后,reverse函数首先计算是否等于0,如果等就算了,如果大就开始,此处7位数大于0,所以首先输入啥呢,不对,还是有点晕,这个如何理解呢,乱七八糟的,在逻辑上实在是不可思议
------解决思路----------------------
动手,是学习计算机技术的首要条件
你把函数改一下
一目了然!
这是你冥思苦想几天几夜都不能理解的
先看代码
function reverse($str){
if(strlen($str)>0){
reverse(substr($str,1));
echo substr($str,0,1);
return;
}
}
reverse("abcdefg");//gfedcbc
上例中,我认为理解是有循环的意思,比如当代进去abcdefg这个实参后,reverse函数首先计算是否等于0,如果等就算了,如果大就开始,此处7位数大于0,所以首先输入啥呢,不对,还是有点晕,这个如何理解呢,乱七八糟的,在逻辑上实在是不可思议
------解决思路----------------------
动手,是学习计算机技术的首要条件
你把函数改一下
function reverse($str){
echo "传入 $str\n"; //这里
if(strlen($str)>0){
reverse(substr($str,1));
echo "\n返回时 $str\n";; //这里
echo substr($str,0,1);
return;
}
}
reverse("abcdefg");//gfedcbc
传入 abcdefg
传入 bcdefg
传入 cdefg
传入 defg
传入 efg
传入 fg
传入 g
传入
返回时 g
g
返回时 fg
f
返回时 efg
e
返回时 defg
d
返回时 cdefg
c
返回时 bcdefg
b
返回时 abcdefg
a
一目了然!
这是你冥思苦想几天几夜都不能理解的
相关文章
相关视频
上一篇: 防CC攻击:在3秒内连续刷新页面5次以上将指向本机
下一篇: PHP开发者有了通往.net的新桥梁