Ricorsione. Simulazione del ciclo
Abbiamo visto che la ricorsione è l'esecuzione ripetuta di istruzioni contenute in una subroutine. E questo, a sua volta, è simile al lavoro del ciclo. Esistono linguaggi di programmazione in cui il costrutto loop è del tutto assente, ad esempio Prolog.
Proviamo a simulare il lavoro del ciclo
for
.
Il ciclo
for
contiene una variabile contapassi. In una subroutine ricorsiva, tale variabile può essere passata come parametro.
// Procedura LoopImitation() con due parametri.
// Primo parametro – contapassi, secondo parametro – numero totale di passi.
void LoopImitation(int i, int n)
{
cout << "Ciao N" << io << finel; // Operatore da ripetere per qualsiasi valore di i
if (i < n) // Fino a quando il contatore del ciclo è uguale a n,
{ // chiama una nuova istanza della procedura, con il parametro i+1 (passa al valore successivo i).
LoopImitation(i + 1, n);
}
}