欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

递归是不是隐藏着循环

程序员文章站 2022-04-23 20:31:45
...
递归是否隐藏着循环
先看代码
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

一目了然!
这是你冥思苦想几天几夜都不能理解的
递归是不是隐藏着循环

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

相关文章

相关视频