当前位置:Gxlcms > PHP教程 > 递归是不是隐藏着循环

递归是不是隐藏着循环

时间:2021-07-01 10:21:17 帮助过:28人阅读

递归是否隐藏着循环
先看代码
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

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

人气教程排行