while
Il costrutto while è una struttura di controllo iterativa che consente di eseguire ripetutamente un blocco di codice finché una condizione rimane vera. È particolarmente utile quando non si conosce in anticipo il numero di iterazioni necessarie.
Sintassi
while (condizione) {
// blocco di codice da eseguire
}- condizione: un’espressione booleana valutata prima di ogni iterazione.
- Se la condizione è
true, il blocco di codice viene eseguito. - Se la condizione è
false, il ciclo termina.
Funzionamento
- La condizione viene valutata.
- Se è
true, il codice all’interno del blocco viene eseguito. - Al termine del blocco, la condizione viene rivalutata.
- Il processo si ripete finché la condizione resta vera.
Se la condizione è falsa fin dalla prima valutazione, il corpo del ciclo non viene mai eseguito.
Esempio base
let contatore = 0;
while (contatore < 5) {
console.log(contatore);
contatore++;
}In questo esempio:
- Il ciclo parte con
contatoreuguale a 0. - Ad ogni iterazione il valore viene stampato e incrementato.
- Quando
contatoreraggiunge 5, la condizione diventa falsa e il ciclo termina.
Uso tipico del ciclo while
Il ciclo while è indicato quando:
- Il numero di iterazioni dipende da un evento o da un risultato dinamico.
- La condizione di uscita non è nota a priori.
- Si lavora con input esterni, stream di dati o stati che cambiano nel tempo.
Esempio con input condizionale:
let passwordCorretta = false;
while (!passwordCorretta) {
// logica di verifica password
passwordCorretta = verificaPassword();
}Rischio di loop infinito
Un errore comune è creare un ciclo infinito, ovvero un while la cui condizione non diventa mai falsa.
while (true) {
console.log("Questo ciclo non terminerà mai");
}Per evitarlo è fondamentale:
- Aggiornare correttamente le variabili coinvolte nella condizione.
- Verificare sempre una possibile condizione di uscita.
Controllo del flusso all’interno del while
All’interno di un ciclo while è possibile utilizzare:
breakper interrompere il ciclo immediatamente.continueper saltare l’iterazione corrente e passare alla successiva.
Esempio con break:
let numero = 0;
while (numero < 10) {
if (numero === 5) {
break;
}
numero++;
}Esempio con continue:
let i = 0;
while (i < 5) {
i++;
if (i === 3) {
continue;
}
console.log(i);
}while vs for
Il while e il for sono entrambi cicli, ma con differenze concettuali:
forè preferibile quando il numero di iterazioni è noto.whileè più adatto a condizioni dinamiche e logica basata su stati.
La scelta non è solo sintattica, ma riflette l’intento del codice e ne migliora la leggibilità.
Buone pratiche
- Assicurarsi sempre che la condizione possa diventare falsa.
- Evitare condizioni complesse difficili da leggere.
- Preferire chiarezza e semplicità rispetto a ottimizzazioni premature.
- Usare il
whilesolo quando è realmente la scelta più espressiva.
Il ciclo while è uno strumento potente e flessibile, fondamentale per gestire flussi di esecuzione dinamici in JavaScript.