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