Maison > développement back-end > tutoriel php > 递归是不是隐藏着循环

递归是不是隐藏着循环

WBOY
Libérer: 2016-06-13 12:21:31
original
1084 Les gens l'ont consulté

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

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
Copier après la connexion

上例中,我认为理解是有循环的意思,比如当代进去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
Copier après la connexion
传入 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 />
Copier après la connexion

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

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal