C/Blocchi e funzioni/Cicli
Il C consente l'uso di cicli iterativi e condizionali che sono il ciclo while, il do-while e il for.
Ciclo while
modificaIl 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.
Sintassi
modifica while(espressione)
istruzione;
while(espressione)
{
istruzione1;
istruzione2;
istruzioneN;
}
Esempi d'uso
modifica int i=10;
while(i!=0) //Finché 'i' è diverso da 0. Si potrebbe scrivere anche semplicemente while(i)
{
printf("Il numero è: %d \n", i);
i--;
}
Ciclo do-while
modificaIl 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.
Sintassi
modifica do
{
istruzione1;
istruzione2;
istruzioneN;
}while(espressione);
Esempi d'uso
modifica int i=10;
do
{
printf("Il numero è %d \n", i);
i--;
}while(i>0);
Ciclo for
modificaIl ciclo for
ripete un blocco di istruzioni finché la condizione specificata è vera.
La condizione viene verificata all'inizio.
È possibile omettere qualsiasi istruzione del ciclo for.
Sintassi
modifica for(istruzione_di_inizializzazione_delle_variabili; espressione; istruzione_di_modifica_delle_variabili)
istruzione;
for(istruzione_di_inizializzazione_delle_variabili; espressione; istruzione_di_modifica_delle_variabili)
{
istruzione1;
istruzione2;
istruzioneN;
}
L'istruzione di inizializzazione permette di impostare un valore iniziale alle variabili che verranno utilizzate nel ciclo; l'istruzione di modifica delle variabili permette di incrementare (o decrementare) le variabili utilizzate nel ciclo.
Esempi d'uso
modificaLe istruzioni break e continue
modificaSe si inserisce un'istruzione break all'interno di un ciclo, esso terminerà. L'applicazione riprenderà dalla prima istruzione fuori dal ciclo.
Esempio (un altro esempio d'uso di break è stato fatto in Blocco switch-case)
while(1){//Ripete all'infinito
if((random()%10) == 4)
break;
}
Questo programma terminerà soltanto quando il generatore di numeri casuali estrarrà 4.
Se si inserisce l'istruzione continue in un ciclo, esso salterà all'iterazione successiva.
Esempio:
int i=0;
for(i=0; i<=10; i++){
if(i==4)//Il 4 va saltato
continue;
printf("Il numero è %d", i);
}