主な違い:プログラミングでは、再帰は再帰関数を考慮することで説明できます。 再帰的関数はコードを繰り返すためにそれ自身を再び呼び出すものです。 一方、反復は、コードの一部を繰り返すためにループする反復関数によって実現されます。
プログラミングでは、繰り返しを実現するために再帰と反復の両方が使用されます。 彼らは何度も繰り返されるプロセスを指します。 再帰は、条件が満たされるまで何かが自分自身を参照するというアプローチに基づいています。 メソッドは、直接または間接的に自分自身を呼び出すことができる場合、再帰的であると言われます -

{
... name()...
}
または
void name()
{
...ゲーム()...
}
void game(){
... name()...
}
再帰を成功させるためには、再帰プロセスで行われるすべての呼び出しが計算を単純化しなければならないことに留意しなければなりません。 再帰は基本ケースを定義することによって達成されます。
int階乗(int N)
{
(N == 0)の場合は1を返します。
そうでなければ(N *階乗(N-1))を返す。
}
この例では、再帰はステートメント(N * factorial(N-1))で簡単に見ることができ、そこでは階乗関数を再度呼び出しています。 再帰はコードの短縮に役立ちますので非常に役に立ちます。 ただし、再帰はパフォーマンスがやや遅くなります。

関数階乗(n)
{
varループ、結果。
結果= 1。
for(loop = 1; loop <= n; loop ++)
{
result = result * loop;
}
結果を返します。
}
この例では、1からnまでの整数を使用してループ処理を行い、それ以降のループ処理を停止するための基準としてloop <= nステートメントを使用します。 したがって、再帰と反復を使用しても同じ結果が得られると結論付けることができます。 ただし、どちらも少し異なるアプローチに基づいています。 どのような再帰的アルゴリズムも、反復(ループ)を使って書くことができます。
再帰と反復の比較
再帰 | 繰り返し | |
定義 | 再帰とは、コードを繰り返すために自分自身を再度呼び出す再帰関数のことです。 | 反復は、コードの一部を繰り返すためにループする反復関数によって実現されます。 |
重要なポイント | 基本ケースを決定する必要があります | 終了条件を決定する必要があります |
パフォーマンス | 比較的遅い | 比較的速い |
メモリ使用量 | 比較的もっと | 比較的少ない |
コード | 小さい | より長いです |
無限の繰り返し | 無限再帰はシステムをクラッシュさせる可能性があります | 無限ループはCPUサイクルを繰り返し消費します |
構造 | 選択 | 繰り返し |
ローカル変数 | 必須ではありません | 必須 |