Programmazione – Lezione 5 – I cicli “While”

while_loop

Abbiamo analizzato i cicli di tipo FOR, ora analizzeremo i cicli di tipo While.

Un’istruzione while continua il suo ciclo fino a quando l’espressione associata non risulta falsa. La sua struttura, in linguaggio C, si presenta cosi:

while (condizione)
{    istruzione }

Proviamo a fare un esempio pratico:

int i = 0;
 
while (i != 10) //se i è diverso da 10 continua il ciclo, altrimenti esce
 {
   printf("%d\n", i); //stampa il valore di i ma va a capo ad ogni stampa '\n'
   i++;              // incrementa i di un unità
 }

Proviamo ad inserire il nostro codice sorgente nel compilatore online:

compilatore-while

Non appena il valore della variabile intera i è uguale a 10 il ciclo si interromperà.

Esiste anche un altro ciclo il Do – While. La sua struttura è la seguente:

do
{    istruzione } while (condizione)

Un esempio pratico:

int valore = 7; // definisco la variabile valore e le attribuisco 7

do {
     printf("%d\n", valore); //stampo valore
     valore--; //decremento di un'unità valore
   } while (valore !=0); //fino a quando valore è diverso da 0 allora riesegue il ciclo

Ecco cosa succede:

compilatore do-while

Bisogna prestare molta attenzione ai cicli con do-while, se la condizione di uscita non si presenta il programma andrà in loop infinito, ovvero girerà all’infinito senza via d’uscita.

Vorrei introdurvi altre due istruzioni, si usano spesso proprio durante i loop, si tratta di break e continue.

Mentre break interrompe il loop e salta alla prima istruzione successiva ad esso, continue torna all’inizio del loop stesso.

Un semplice esempio:

int casuale = 0; // definisco una variabile di nome casuale
int contatore = 10; //creo una variabile contatore che partirà da 10 e la farò decrementare ad ogni loop

//Con questo loop farò generare 10 numeri casuali compresi tra 0 e 99, ma se uno di questi
//numeri sarà uguale a 32 allora esce dal loop
do {
 casuale = rand () % 100; //verranno generati numeri casuali interi compresi tra 0 e 99 (parleremo meglio di questa funzione a breve)
 printf("%d\n", casuale); //stampo il contenuto di casuale
 
 if(casuale == 32) break; //se casuale = 32 allora esce dal loop

 contatore--; //decremento il contatore
} while (contatore !=0); //esegue il loop fino a quando contatore è diverso da 0

compilatore-break

Provate anche voi a realizzare qualcosa, via spetto al prossimo articolo Smile-Ammicca

Se ti è piaciuto l'articolo e apprezzi il mio lavoro potresti aiutarmi con una piccola donazione, tramite PayPal, offrendomi un cappuccino.
Grazie di cuore!
Dona