Come con il for
, che abbiamo già visto, anche con il costrutto while possiamo definire dei cicli. Il programma eseguirà un'istruzione o un blocco di istruzioni finché una certa condizione resta verificata. Esaminiamo la sintassi C++ di while:
while(<condizione>) <istruzione> | <blocco di istruzioni>
L'utilizzo tipico del while prevede quasi sempre l'esecuzione di un blocco di istruzioni, quindi quasi sempre troviamo il costrutto espresso nella forma:
while(condizione)
{
// Istruzioni da eseguire
}
Espressione | Descrizione |
---|---|
condizione | è una espressione booleana che serve come controllo da effettuare all'inizio di ogni ciclo: se verificata (true ) il blocco di istruzioni tra graffe viene eseguito, altrimenti (false ) il ciclo sarà terminato. |
Esaminiamo subito un esempio. Supponiamo di voler scrivere un programma che stampi sullo schermo tutti i numeri pari tra 11 e 23:
#include <iostream.h> // File da includere per operazioni di input/output cout
int main()
{
// Definiamo una variabile che conterrà il valore corrente
int numero_corrente = 12;
// ciclo while che stampa sullo schermo tutti i numeri pari tra 11 e 23
while (numero_corrente < 23)
{
cerr << numero_corrente << endl;
numero_corrente = numero_corrente + 2;
}
cerr << "Fine del Programma!" << endl;
}
Il funzionamento del programma è molto semplice. Definiamo una variabile numero_corrente
che usiamo per conservare il valore che di volta in volta il ciclo while modificherà. Inizialmente tale variabile viene inizializzata a 12
(il primo valore pari dell'intervallo).
Si entra nel ciclo while e viene testata la condizione che richiede che numero_corrente
sia minore di 23
. Ovviamente la condizione viene soddisfatta e così viene eseguito il blocco all'interno del ciclo.
La prima istruzione del blocco stampa il valore della variabile numero_corrente
(che è inizialmente 12) mentre la seconda istruzione incrementa il valore della stessa variabile di 2 unità. Alla fine del primo ciclo numero_corrente
vale 14.
Si ricomincia di nuovo: si testa la condizione, questa è ancora soddisfatta, si stampa il valore della variabile (adesso è 14) e si incrementa numero_corrente di 2 unità (ora vale 16). E così via fino a quando la condizione non è più verificata, ovvero quando accadrà che numero corrente varrà 24.
L'output del programma precedente, sarà allora il seguente:
12
14
16
18
20
22
Fine del Programma!