Il ciclo di while esegue un blocco di istruzioni finché la condizione specificata risulta vera. In questa lezione, vediamo come funziona e come utilizzarlo.
Come creare un ciclo di while
Per creare un ciclo di while, puoi utilizzare la sintassi while(condizione) { ... }. Vediamo un esempio:
let numero = 0;
while(numero <= 4){
numero++;
}Quando esegui il ciclo, ecco cosa succede:
numero è minore di 4 (è uguale a 0).numero aumenta di 1, ma è ancora minore di 4.Viene eseguito più volte il blocco...
numero è uguale a 5. Viene controllata la condizione ed è falsa. Quindi, il ciclo termina e il programma prosegue.Esempio di un ciclo di while
Vediamo un esempio per capire meglio questo ciclo: l'utente deve inserire una password e dobbiamo controllare che contenga almeno 8 lettere, utilizzando length (che puoi approfondire nei Metodi delle stringhe).
let password = prompt("Inserisci una password:");
let lunghezza_corretta = false;
while(lunghezza_corretta == false){
if(password.length >= 8){
alert("Password corretta!");
lunghezza_corretta = true;
} else {
alert("La password deve contenere almeno 8 caratteri!");
password = prompt("Inserisci una nuova password:");
}
}Nell'esempio, vengono dichiarate due variabili: password, ovvero il valore inserito tramite prompt, e lunghezza_corretta, che memorizza se la password ha almeno 8 caratteri.
Dopo aver chiesto l'inserimento della password utilizzando il prompt, si entra nel ciclo di while perché lunghezza_corretta è false. All'interno del blocco, viene controllato se la lunghezza è maggiore o uguale di 8. Se la condizione è vera, allora lunghezza_corretta diventa true. In caso contrario, rimane false e viene chiesto un nuovo inserimento. Il ciclo, quindi, si ripete.
Ciclo do while
Esiste una variante del ciclo di while, chiamato do while. Appunto, è formato da do e da while. La sintassi è do{ ... } while(condizione).
Vediamo un esempio:
let numero = 0;
do {
numero++;
} while(numero <= 5)Nel caso del ciclo do while, le istruzioni in do vengono eseguite subito (senza condizioni). Vengono ripetute successivamente solo se la condizione in while è vera. Quindi, nell'esempio:
numero++ senza considerare nessuna condizione.numero++ solo se la condizione in while è vera. Nel primo caso, numero è minore di 5, quindi si ripete.numero uguale a 6.Esempio di un ciclo while do
Rivediamo lo stesso esempio di prima, utilizzando il ciclo while do:
let password;
do {
password = prompt("Inserisci una password di 8 caratteri:");
} while(password.length < 8)In questo esempio, abbreviamo le istruzioni inserendo la condizione password.length minore di 8 direttamente nel while.
Cosa succede? Per prima cosa, viene eseguito il blocco in do e viene richiesta la password. Se la lunghezza è minore di 8, allora viene ri-eseguito il blocco. Se la condizione è vera, allora il programma continua.