C/Blocchi e funzioni/Cicli

Wikibooks, manuali e libri di testo liberi.

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

Indice

[modifica] 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.

[modifica] Sintassi

 while(espressione)
  istruzione;
 
 while(espressione)
 {
  istruzione1;
  istruzione2;
  istruzioneN;
 }

[modifica] Esempi d'uso

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

[modifica] 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.

[modifica] Sintassi

 do
 {
  istruzione1;
  istruzione2;
  istruzioneN;
 }while(espressione);

[modifica] Esempi d'uso

 int i=10;
 do
 {
  printf("Il numero è %d \n", i);
  i--;
 }while(i);

[modifica] Ciclo for

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.

[modifica] Sintassi

 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.

[modifica] Esempi d'uso

 int i;
 for(i=1; i<=10; i++)
 {
  printf("Il numero è %d \n", i);
 }
 
 for( ; ;)
 {
  printf("Ciclo infinito \n"); /*Non usare nelle applicazioni così com'è, le farebbe bloccare.*/
 }

[modifica] Le istruzioni break e continue

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 C/Blocchi e funzioni/Blocchi if e switch#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);
 }
Strumenti personali