C/Blocchi e funzioni/Cicli
Wikibooks, manuali e libri di testo liberi.
- Il linguaggio
- Variabili, operatori e costanti
- Blocchi e funzioni
- Blocchi if e switch
- Operatori logici
- Cicli (while, do-while e for)
- Funzioni
- La funzione main
- Altre funzioni
- Librerie
- Ricorsività
- Vettori e puntatori
- Stringhe
- Enumerazioni, strutture e unioni
- Lettura e scrittura su file
- Compilatore e precompilatore
- File di header
- Gestione della memoria
- Le applicazioni CGI
- Approfondimenti
- Appendice
- Bibliografia
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); }