In aggiunta alle condizioni un altra utile costruzione è la possibilità di ripetere un azione fintantoché non si verifichi una condizione. Il ciclo while è usato per questo, con la seguente sintassi.
[!java|scala|c]while (condizione) { azione(); }[/!][!python]while condizione: azione()[/!]
Il blocco interno viene quindi eseguito ancora ed ancora finché la condizione rimane vera. Più in dettaglio, il buggle testa il valore della condizione. Se è false ignora il blocco e continua sotto. Se è true esegue il blocco. Dopo di questo lui ritesta la condizione. Se è ancora false (per esempio perché un movimento gli ha fatto fronteggiare un muro) lui ignora il blocco e continua. Se è ancora true, esso esegue il blocco e rivaluta la condizione. Esso continuerà finché la condizione rimarrà true.
Naturalmente se le azioni scelte non influenzeranno il valore della condizione, il buggle continuerà ad eseguire l'azione all'infinito. In questo caso il pulsante stop dell'interfaccia diventerà utile. Per testare questo puoi provare a scrivere il seguente codice nell'editor:
[!java|scala]while (true) { left(); }[/!][!c]while (1) { left(); }[/!][!python]while True: left()[/!]
This will let the buggle turn left as long as
[!c]1[/!][!java|scala]true[/!][!python]True[/!]
remains true
(ie, endlessly), or until you stop it manually using the stop button.
mentre non stiamo fronteggiando un muro, eseguiamo: muoversiAvanti()
Quando il tuo programma avrà funzionato, prosegui con il prossimo esercizio.