Il ciclo do while in Java
Nel linguaggio Java la struttura ciclica do while mi permette di ripetere l'esecuzione di un blocco di istruzioni finché una condizione è vera.
do {
blocco di istruzioni
}
while { condizione}
E' un ciclo indeterminato, ossia non si conosce inizialmente il numero di iterazioni perché è determinato dal verificarsi o meno da una condizione di controllo.
Qual è la differenza tra il ciclo while e do while? Nel ciclo do while il controllo è posto alla fine. Quindi, il programma esegue il blocco di istruzioni almeno una volta anche se la condizione di controllo è falsa.
Viceversa, nel ciclo while il controllo è posto all'inizio e non viene compiuta nemmeno un'iterazione se la condizione di controllo è falsa.
Un esempio pratico
Questo ciclo stampa a video la variabile conta finché è minore di 10.
- int conta = 20;
- do {
- System.out.println(conta);
- n++;
- }
- while (conta < 10);
Nella prima istruzione è assegnato il valore 20 alla variabile conta. Quindi, la condizione di controllo del ciclo sarebbe già falsa ( 20 non è minore di 10 ).
Tuttavia, la condizione di controllo do-while è situata alla fine del blocco di istruzioni e il programma Java lo esegue comunque.
Il programma stampa il valore contenuto nella variabile conta (20) e poi la incrementa di uno (20+1=21).
Il risultato in output è il seguente:
20
Una volta raggiunta la condizione di controllo, il programma esce dal ciclo perché 21 non è minore di 10. E così via.
In conclusione, la struttura ciclica compie un'iterazione anche se la condizione di controllo è falsa.
Nota. La struttura ciclica while, viceversa, non avrebbe effettuato nemmeno un'iterazione, perché la condizione di controllo è situata prima del blocco di istruzioni.