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.