C/Blocchi e funzioni/Cicli

Indice del libro

Il C consente l'uso di cicli iterativi e condizionali che sono il ciclo while, il do-while e il for.

Ciclo while

modifica

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.

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

modifica

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.

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

modifica

Il 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

modifica

Le istruzioni break e continue

modifica

Se 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);
 }