Dispensa II.5 versione 1.0 mail: lamonica@associatesonline.it Pagina 1 di 7
STRUTTURA ITERAZIONE
Il C consente l'uso di cicli iterativi e condizionali che sono il ciclo while, il do-while e il for..
Dispensa II.5 versione 1.0 mail: lamonica@associatesonline.it Pagina 2 di 7
ITERAZIONE - ciclo for
Nei linguaggi di programmazione, il ciclo for è una struttura di controllo iterativa che determina l'esecuzione di una porzione di programma ripetuta per un certo numero di volte.
Si distingue in questo modo da altre forme di ciclo, come il ciclo while, che determina la ripetizione di una porzione di un programma fino al verificarsi di una determinata condizione. La scelta fra questi due tipi di ciclo è legata a considerazioni di leggibilità e chiarezza del codice; in linea di principio, infatti, qualunque algoritmo che impieghi un ciclo for può essere trascritto in una forma che usa solo il ciclo while, e viceversa.
Quasi tutti i linguaggi di programmazione hanno un ciclo for; un ciclo di questo genere è presente in praticamente tutti i linguaggi procedurali e a oggetti, e anche in linguaggi basati su altri paradigmi.
Pur con sintassi specifiche che variano da linguaggio a linguaggio, il ciclo for è in genere riconoscibile per un certo insieme di elementi tipici:
• il ciclo è basato su una variabile contatore, in genere una variabile numerica intera, che viene incrementata a ogni iterazione;
• il numero di iterazioni previsto per il ciclo è espresso indirettamente, specificando il valore
iniziale della variabile contatore e il valore finale (cioè il valore raggiunto il quale il ciclo termina);
Solitamente il contatore viene incrementato di 1 a ogni iterazione, ma è in genere possibile specificare un incremento diverso (detto step), eventualmente anche come numero negativo (nel
Dispensa II.5 versione 1.0 mail: lamonica@associatesonline.it Pagina 3 di 7 qual caso è possibile impostare un ciclo in cui il valore iniziale del contatore è maggiore di quello finale, e il contatore conta dunque "a ritroso").
Il linguaggio C e i suoi derivati (inclusi per esempio C++ e Java) forniscono una versione generalizzata del ciclo for, che si può impiegare per descrivere cicli la cui terminazione non è basata semplicemente sul conteggio delle iterazioni eseguite attraverso un contatore. La sintassi generale del ciclo for in C è la seguente:
for(<inizializzazione>; <test>; <incremento>) <istruzione>;
oppure
for(<inizializzazione>; <test>; <incremento>) {
istruzione1;
istruzione2;
...
istruzioneN;
}
dove
<inizializzazione> è una qualsiasi espressione C (nella forma più semplice, l'assegnamento di un valore iniziale a un contatore);
<test> è una condizione che dev'essere vera affinché il ciclo continui (nella forma più semplice, la condizione che il contatore non abbia raggiunto il suo valore finale);
Dispensa II.5 versione 1.0 mail: lamonica@associatesonline.it Pagina 4 di 7
<incremento> è una istruzione che viene eseguita al termine di ogni iterazione (nella forma più semplice, l'incremento del contatore).
Un esempio in cui il ciclo for viene impiegato in modo convenzionale è per esempio il seguente, che stampa a video i valori da 1 a 10
int i;
for(i = 1; i <= 10; i++) printf("%d", i);
Dispensa II.5 versione 1.0 mail: lamonica@associatesonline.it Pagina 5 di 7
ITERAZIONE - ciclo while
Il ciclo while ripete delle istruzioni finché l'espressione specificata è vera. Vedi anche verità e falsità in C.
La condizione viene controllata all'inizio del ciclo, e questo vuol dire che se l'espressione è subito falsa le istruzioni nel ciclo non verranno eseguite nemmeno una volta.
while(espressione) istruzione;
oppure
while(espressione) {
istruzione1;
istruzione2;
...
istruzioneN;
}
Un esempio in cui il ciclo while viene impiegato in modo convenzionale è per esempio il seguente, che stampa a video i valori da 10 a 1
int i=10;
while(i!=0) //Finché 'i' è diverso da 0. Si potrebbe scrivere anche semplicemente while(i)
{
Dispensa II.5 versione 1.0 mail: lamonica@associatesonline.it Pagina 6 di 7 printf("Il numero è: %d \n", i);
i--;
}
Dispensa II.5 versione 1.0 mail: lamonica@associatesonline.it Pagina 7 di 7
ITERAZIONE - ciclo do-while
Il ciclo do-while, come il ciclo while, ripete le istruzioni finché la condizione immessa risulta vera.
Le istruzioni nel blocco, però, vengono eseguite almeno una volta perché la condizione viene controllata alla fine.
do {
istruzione1;
istruzione2;
istruzioneN;
}while(espressione);
Un esempio in cui il ciclo do-while viene impiegato in modo convenzionale è per esempio il seguente, che stampa a video i valori da 10 a 1
int i=10;
do {
printf("Il numero è %d \n", i);
i--;
}while(i>0);