Descubrimos que la recursividad es la ejecución repetida de comandos contenidos en una subrutina. Y esto, a su vez, es similar al trabajo del ciclo. Hay lenguajes de programación en los que la construcción de bucle está completamente ausente, por ejemplo, Prolog.
Intentemos simular el trabajo del bucle for.
El bucle for contiene una variable de contador de pasos. En una subrutina recursiva, dicha variable se puede pasar como parámetro.
//procedimiento LoopImitation()
con dos parámetros
// primer parámetro – contador de pasos, segundo parámetro – número total de pasos
static void LoopImitation(int i, int n)
{
Console.WriteLine("Hola N" + i); // declaración que se repetirá para cualquier valor i
if (i < n) // hasta que el contador de bucle sea igual a n,
{
LoopImitation(i+1, n); // llamando a un nuevo procedimiento de instancia, con parámetro i+1 (ir al siguiente valor de i)
}
}