再帰呼び出しとは何ですか?

プログラミングでは、再帰呼び出しとは、同じサブルーチンを再度実行するようにプログラムに指示するサブルーチンまたは関数内のコマンドです。 繰り返しのパフォーマンスは、関数の直接的な結果である場合もあれば、2番目の関数がトリガーされて、最初の関数を参照する場合もあります。 再帰呼び出しには恐ろしい無限ループといくつかの類似点がありますが、サブルーチンには常に、再帰の繰り返しを停止するタイミングをプログラムに指示する条件文があります。

再帰の概念は、例を使用することでおそらく最もよく説明できます。 屋根roofき職人が家に新しい帯状疱疹を適用しているとします。 開始するには、彼は屋根に帯状疱疹の束を運ばなければなりません。 最初の束を所定の位置に釘付けしたら、彼ははしごを降りて別の束を回収し、所定の位置に釘付けしなければなりません。 このプロセスは、最後のシングルが適用されるまで、一連の「実行、取得、復帰」として続行されます。 その時点で、屋根roofき職人は次の仕事に移ったり、家に帰ったりすることができます。

例は単純化されていますが、再帰呼び出しのすべての要素が含まれています。 出発点があり、屋根roofき職人は必要なものを取り出し、最初に戻り、最終条件が満たされたら停止する必要があります。 これは基本的にプログラムが行うことです。 開始し、アクションを実装し、自身に戻り、終了条件が発生すると終了します。

終了条件は、ベースケースと呼ばれます。 すべての再帰呼び出しに不可欠です。 それがなければ、関数は繰り返し続けます。 せいぜい、これはシステムのメモリリソースを消費することになります。 通常、オーバーロードはある時点でプログラムをクラッシュさせますが、問題が発見されるまでに重大な損害が発生する可能性があります。

経験豊富なプログラマーは、再帰呼び出しと「for」または「while」ループの類似性を認識するかもしれません。 例えば、目標が999より大きい部品番号を持つすべての在庫の合計在庫数を見つけることである場合、「for」ループはプログラムにすべての適格なインスタンスを見つけるよう指示し、「while」ループはプログラムにループを実行するよう指示します指定された条件が有効な間のみ。 再帰呼び出しは、これらのループの機能のいくつかを「if-then-else」ステートメントと組み合わせていると言えます。 この条件が真である場合、これを行うか、条件が偽である場合は別のことを行います。 ただし、通常、再帰を使用するとコードがよりコンパクトになり、必要なポイントに近い関数に問題を渡すことができます。

他の言語

この記事は参考になりましたか? フィードバックをお寄せいただきありがとうございます フィードバックをお寄せいただきありがとうございます

どのように我々は助けることができます? どのように我々は助けることができます?