logo Dove iniziare Linguaggi Aiuto Blog
Home Dove iniziare Linguaggi Aiuto e Supporto Info e Blog

Ciclo di while

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:

  1. Viene controllata la condizione. Se è vera, il blocco viene eseguito. In questo caso, numero è minore di 4 (è uguale a 0).
  2. Dopo l'esecuzione delle istruzioni, viene controllata la condizione. Nell'esempio, il numero aumenta di 1, ma è ancora minore di 4.
  3. Viene eseguito più volte il blocco...

  4. Il 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:

  1. Viene eseguito numero++ senza considerare nessuna condizione.
  2. Poi, viene ri-eseguito numero++ solo se la condizione in while è vera. Nel primo caso, numero è minore di 5, quindi si ripete.
  3. Le istruzioni si ripetono finché la condizione è falsa, quindi con 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.

Prova!Completa gli spazi vuoti con il testo appropriato.
// Crea un ciclo while che ripeta le istruzioni finché corretto è true
(corretto == ){
  // Istruzioni
}

Prova!Scegli l'opzione corretta tra quelle elencate.
// Crea un ciclo while do
___ {
  // Istruzioni
} while(condizione)