Costrutti di iterazione

Il costrutto sequenziale e quello di selezione non sono sufficienti da soli a risolvere tutti i problemi. Spesso i programmi devono prevedere la ripetizione di uno o più comandi che vanno eseguiti un numero predefinito di volte o fin quando non si verifica una determinata condizione. Per definire in modo rigoroso queste particolari strutture, chiamate strutture di iterazione, dobbiamo ricorrere ancora una volta a modelli rigorosi.

Per le iterazioni che prevedono comandi da eseguire almeno una volta e che vanno ripetuti mentre è vera una particolare condizione (anche definite come cicli a controllo in coda o post-condizionali):

Fai
{ 	elenco di istruzioni
	da eseguire se la condizione 
	risulta vera
}
Mentre (condizione)

Per le iterazioni che potrebbero non essere mai eseguite e che vanno ripetute mentre è vera una particolare condizione (anche definite come cicli a controllo in testa o pre-condizionali):

Mentre (condizione)
{ 	elenco di istruzioni
	da eseguire se la condizione 
	risulta vera
}

Per le iterazioni che devono essere eseguite un numero predefinito di volte (enumerazioni, anche definite come cicli enumerativi):

for (inizio; test; incremento)
{ 	elenco di istruzioni
	da eseguire per
	un numero stabilito di volte
}

A questo punto sono necessarie alcune precisazioni. Per le iterazioni a controllo in testa e a controllo in coda sarà necessario che almeno una delle istruzioni nel corpo del ciclo (le istruzioni da ripetere) sia in grado di cambiare il valore restituito dal test sulla condizione. In caso contrario si rischia di avviare un ciclo che non verrà mai concluso (loop infinito).

Il ciclo enumerativo ha invece bisogno di una variabile, detta contatore del ciclo, cui viene assegnato un valore iniziale in corrispondenza della prima voce tra parentesi tonde (inizio), che viene incrementata automaticamente ad ogni iterazione, come specificato dall'ultima voce tra parentesi tonde (incremento) fino al raggiungimento di un valore finale, come specificato dalla seconda voce tra parentesi tonde (test).

Scrivi email per il tutor dei corsi
Scrivi email per l'amministratore del sito
Torna all'indice del modulo

Ultima modifica: