Il ciclo do while in JavaScript, così come negli altri linguaggi dove questo costrutto esiste, consente di eseguire le istruzioni almeno una volta. Se la condizione è vera allora si ripete nuovamente il ciclo, altrimenti si passa all’istruzione successiva.
Il ciclo do-while è difatti un costrutto post-condizionale.
Sintassi do while JavaScript
La sintassi del do while è dunque questa:
do {
// istruzioni;
} while (condizione);
Si può chiaramente avere anche una singola istruzione da eseguire.
La semantica del costrutto do-while è dunque questa:
1. Si esegue l’istruzione (o più di una);
2. Dopo si valuta la condizione, la quale può essere vera o falsa.
3. Quindi se la condizione è vera si ritorna al punto 1; altrimenti si passa all’istruzione successiva.
Esempio 1 – do while JavaScript
Come primo esempio ripropongo un esercizio già sviluppato con il ciclo while nella precedente lezione.
Visualizziamo i numeri da 0 a 9 in ordine crescente.
Per questo esempio inizializziamo sempre una variabile contatore: c = 0.
Poi, con il ciclo do while, stampiamo la prima istruzione, incrementiamo c di 1 e solo dopo valutiamo la condizione. Se la condizione è vera allora il ciclo ripartirà nuovamente eseguendo le stesse istruzioni.
Da notare che se avessi erroneamente inserito la condizione c >10, comunque le istruzioni all’interno del do-while sarebbero state eseguite almeno una volta.
Ecco di seguito il codice completo:
let c = 0;
do {
console.log(c + '</br>');
c++;
} while (c < 10);
Esempio 2 – do while JavaScript
In questo secondo esempio utilizzeremo il ciclo do while per effettuare un controllo dell’input. Questo infatti è uno dei maggiori casi in cui il ciclo do while viene utilizzato.
Controllare che un numero preso in input sia positivo e richiederlo in caso contrario.
All’interno del ciclo inseriamo l’istruzione che serve a prendere un dato in input. Solo dopo controlliamo se tale valore è negativo. Se questa condizione è vera il ciclo verrà ripetuto.
Ecco dunque il codice completo:
let a;
do {
a = prompt("Inserisci un numero:");
} while (a<0);
console.log(a);
In questo esempio abbiamo utilizzato la funzione prompt di JavaScript che serve per aprire una finestra del browser con un campo di input per l’inserimento dei dati.
Esempio 3 – controllo dell’input su due dati in input
In questo terzo esempio sul ciclo do while in JavaScript prendiamo in input due numeri e controlliamo se entrambi sono positivi, altrimenti li richiediamo.
La risoluzione dell’esercizio è simile al precedente, ma occorre prestare attenzione alla condizione. Infatti, occorre testare se a oppure b sono minori di zero. Si può indurre, erroneamente, ad utilizzare l’operatore logico and ( && ), ma in questo caso il programma non riesegue il ciclo se uno dei due numeri è negativo.
Provate a riflettere proprio su questo!
Di seguito il codice completo:
let a, b;
do {
a = prompt("Inserisci il numero a:");
b = prompt("Inserisci il numero b:");
} while ((a<0) || (b<0));
console.log(a + '</br>');
console.log(b);
In questa lezione abbiamo introdotto il ciclo do while in JavaScript, nelle prossime lezioni proporrò tanti altri esempi.
Alcuni link utili
Come utilizzare JavaScript alert
Come utilizzare JavaScript confirm