Il ciclo while in C

Nel linguaggio C il ciclo while è una struttura di controllo iterativa che permette di eseguire ripetutamente un blocco di codice fintantoché una particolare condizione risulta essere verificata. La sintassi dell’istruzione while è la seguente:


 
while (espressione) {
 // blocco di codice
}

Il ciclo while è composto da una espressione/condizione e da un blocco di codice. Se la condizione è falsa, allora il blocco di codice del ciclo while non viene eseguito. Se invece l’espressione risulta essere verificata, allora viene eseguito il blocco di codice e questo processo viene ripetuto fintantoché l’espressione risulta essere vera. Nel momento in cui l’espressione non è più verificata, il codice non viene più eseguito e l’istruzione while termina.

Nota: bisogna stare attenti a come si definisce il blocco di codice interno al ciclo while, poiché è possibile che venga eseguito all’infinito. Se il valore dell’espressione non risulta essere mai falsa, chiaramente il ciclo while continua ad essere eseguito. Per esempio:


 
while (1) {
 // blocco di codice
}


Essendo il valore 1 considerato un valore di verità VERO, la condizione del while è verificata e quindi viene eseguito all’infinito il blocco di codice. Per evitare un problema del genere bisogna usare l'istruzione break che permette di uscire dal ciclo e far eseguire l’istruzione successiva.

Esempio di utilizzo del ciclo while in C

Nel seguente esempio usiamo il ciclo while per stampare a video dieci numeri da 0 a 9.
Basta definire una variabile di tipo int (nel nostro caso i) ed inizializzarla a 0 e imporre che la condizione del ciclo while sia: i<10, in questo modo verrà eseguito il ciclo fino a che la variabile i risulta essere minore di dieci. All’interno del ciclo while dobbiamo incrementare la variabile i, altrimenti il ciclo verrebbe eseguito all’infinito.



 
#include <stdio.h>

int main(){
    int i = 0;

    while(i < 10){
        printf("%d ", i);
        i++;
    }

    return 0;
}


Output: 0 1 2 3 4 5 6 7 8 9

Indice pagine linguaggio C: