プロシージャまたは関数には、その中に別のプロシージャへの呼び出しを含めることができます。サブルーチン自体を呼び出すこともできます。この場合、コンピュータは気にしません。彼はいつものように、出会った命令を上から下まで一貫して実行します。
数学を覚えていれば、そこで数学的帰納法の原理に出会うことができます。それは次のとおりです。
あるステートメントは、すべての自然なnの場合に当てはまります。
1) n = 1 の場合に有効です。
2) 任意の自然 n = k に対するステートメントの妥当性から、n = k+1 についても真であることがわかります。
プログラミングではこの手法を再帰と呼びます
。
再帰は、指定された単純な基本ケースに基づいて、セット自体の観点からオブジェクトのセットを定義する方法です。
再帰的 は、それ自体を直接呼び出すか、他のプロシージャや関数を通じて呼び出すプロシージャ (関数) です。
再帰的プロシージャの例:
void Rec(int a)
{
if (a>0) { Rec(a-1); }
Console.WriteLine(a);
}
再帰の作業は、フローチャートとして概略的に表すことができます。
Rec()
プロシージャはパラメータを指定して実行されます3 次に、パラメータ 3 のプロシージャ内で、パラメータ 2 のプロシージャが呼び出され、パラメータ 0 のプロシージャが呼び出されるまで同様に動作します。次に、制御はパラメータ 1 を持つプロシージャに戻り、数値 1 を出力して作業を終了します。パラメータ 3 のプロシージャの前。
呼び出されたすべてのプロシージャは、作業が完了するまでメモリに保存されます。同時プロシージャの数は再帰の深さと呼ばれます。