再帰とは、サブルーチンに含まれるコマンドを繰り返し実行することであることがわかりました。そして、これはサイクルの働きに似ています。 Prolog など、ループ構造がまったくないプログラミング言語もあります。
for のループの動作をシミュレートしてみましょう。
for ループにはステップ カウンター変数が含まれています。再帰的サブルーチンでは、このような変数をパラメータとして渡すことができます。
<プレ>
// 2 つのパラメータを持つプロシージャ LoopImitation()
// 最初のパラメータ –ステップ カウンター、2 番目のパラメーター –総ステップ数
static void LoopImitation(int i, int n)
{
Console.WriteLine("Hello N" + i); // 任意の値 i に対して繰り返されるステートメント
if (i < n) // ループカウンターがnに等しくなるまで、
{
LoopImitation(i+1, n);
// 新しい呼び出しパラメータ i+1 を持つインスタンス プロシージャ (次の i 値に移動)
<コード>
}