C/Blocchi e funzioni/Cicli

Wikibooks, manuali e libri di testo liberi.
Jump to navigation Jump to search
CopertinaC/Copertina
IndiceC/Indice

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 {{IndexItem|break}}break e {{IndexItem|continue}}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]])

<source lang="c">
 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);
 }