Bene: while.
Allora, la sintassi è questa:
CODICE
while ( condizione )
{
istruzioni da eseguire
}
In pratica, funziona come un costrutto if: se la condizione tra parentesi è vera, verranno eseguite le istruzioni del corpo del costrutto, altrimenti no.
Cosa c'è di diverso, allora? Se la condizione è vera, il programma esegue il corpo di while, e poi verifica di nuovo la condizione di while. Se è di nuovo vera, esegue di nuovo il corpo, e poi verifica la condizione, e si va avanti così. Se la condizione, a un certo punto diventa falsa, il costrutto termina e il programma salta alla prima istruzione dopo di esso e fuori dal suo corpo.
Forse è meglio un esempio:
CODICE
int contatore = 1;
while ( contatore <= 10 )
{
cout << contatore << "\n";
contatore = contatore + 1;
}
Questo è un pezzo di programma, che stampa sul monitor i numeri da 1 a 10, servendosi di un costrutto while.
La condizione è vera fino a quando contatore non supera 10.
State attenti, però, a utilizzare il costrutto while: ci sono infatti due errori che potete commettere abbastanza facilmente: il ciclo infinito e l'errore off-by-one (fuori di uno). Non ritengo necessario spiegarvi quest'ultimo errore adesso, ma mi sembra fondamentale illustrarvi l'errore del ciclo infinito.
In pratica, l'errore del ciclo infinito si ha quando un costrutto while, che è un ciclo, appunto, non termina mai, cioè quando la sua condizione è sempre vera.
Se dimenticate di includere nel corpo un'istruzione che modifica una parte della condizione, infatti il vostro programma non terminerà mai, come in questo caso:
CODICE
int contatore = 1;
while ( contatore <= 10 )
{
cout << contatore << "\n";
}
Ok?