再帰の定義:
- 再帰は、それ自体を呼び出すメソッドです。
- メソッド自体への呼び出しが含まれる場合、メソッドは再帰的です。
古典的な例:
階乗計算は再帰の典型的な例です。
数値の階乗? 1 から N までのすべての整数の積です
コード例:
- 提供されたコードは、階乗を計算するための再帰的方法 (factR) と反復的方法 (factI) を示しています。
- どちらのメソッドも同じ結果を返しますが、アプローチが異なります。
再帰的メソッドの動作:
- 再帰メソッド (factR) は、
の値が得られるまで自身を呼び出します。
- ? n は 1 ではありません。
- 再帰呼び出しごとにメソッドは「スタック」し、基本条件が満たされた場合にのみ戻りを開始します。
コールスタック:
- 各再帰呼び出しは、実行スタック上に新しいパラメータと変数用のスペースを割り当てます。
- 再帰呼び出しによりスタック オーバーランが発生し、例外が発生する可能性があります。
反復との比較:
- クイックソートなどの特定のアルゴリズムでは、再帰的メソッドの方が明確かつ単純である場合があります。
- ただし、再帰バージョンはメソッド呼び出しのオーバーヘッドにより遅くなる可能性があります。
再帰を使用するときの注意:
- メソッドが無限ループに入ることを防ぐために、終了条件を設定することが重要です。
- println() などのデバッグ ステートメントは、再帰的実行のフローを理解するのに役立ちます。
階乗を計算するための再帰コード
RECURSION.JAVA
を参照してください。
以上が再帰の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。