ホームページ > バックエンド開発 > PHPチュートリアル > 再帰はループを隠しますか?

再帰はループを隠しますか?

WBOY
リリース: 2016-06-13 12:21:31
オリジナル
1083 人が閲覧しました

再帰はループを隠していますか?
まずコードを見てください。

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 までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート