while
Ripetere senza sapere quante volte
Section titled “Ripetere senza sapere quante volte”Fino ad ora, le istruzioni che abbiamo scritto vengono eseguite una volta sola (a meno che non stiano dentro loop() che le ripete all’infinito). Ma spesso si ha bisogno di ripetere qualcosa un numero di volte non definito in anticipo, finché una certa condizione rimane vera.
“Continua ad aspettare un comando dall’utente finché non ne arriva uno valido.” “Continua a leggere dati dal sensore finché il valore non supera la soglia.”
Per questo esiste il ciclo while.
La Sintassi di while
Section titled “La Sintassi di while”Il flusso di esecuzione
Section titled “Il flusso di esecuzione”- Arduino valuta la condizione
- Se è vera -> esegue il blocco, poi torna al punto 1
- Se è falsa -> salta il blocco e prosegue con il codice successivo
Analogia: sveglia
Section titled “Analogia: sveglia”Immagina una sveglia che suona ogni mattina. Il suo “programma” è: “Finché non è ancora l’ora di svegliarsi, aspetta. Quando arriva l’ora, suona.” Il while funziona allo stesso modo: controlla la condizione, e finché è vera continua a eseguire il blocco.
L’operatore ++ e --
Section titled “L’operatore ++ e --”Dentro i cicli si usa spessissimo l’operatore di incremento ++ e di decremento --. Sono abbreviazioni comode:
⚠️ Il Ciclo Infinito
Section titled “⚠️ Il Ciclo Infinito”Se la condizione di un while non diventa mai falsa, il ciclo gira all’infinito e il programma si blocca lì, senza poter fare altro.
while (true): Ciclo Infinito Intenzionale
Section titled “while (true): Ciclo Infinito Intenzionale”A volte un ciclo infinito è voluto: si scrive esplicitamente while (true).