Il costrutto WHILE
Nel costrutto IF ELSE abbiamo visto che veniva valutata una condizione e se questa veniva verificata (True) una serie di operazioni venivano eseguite altrimenti (False) ne venivano eseguite altre.
Ora il costrutto WHILE prevede similarmente ad IF sempre la valutazione di una condizione e se questa viene verificata (True) una serie di operazioni vengono eseguite, ma alla fine di queste, invece di ridare il controllo al flusso del programma ed uscire dal costrutto, la condizione iniziale viene valutata un’altra volta. Se questa sarà ancora verificata (True) allora verranno ripetute nuovamente le operazioni effettuate nel ciclo precedente altrimenti (False) si uscirà dal costrutto.
Quindi un costrutto WHILE non è altro che un ciclo (loop) in cui delle operazioni vengono ripetute finchè (WHILE) la condizione che lo controlla è soddisfatta. Questa tipologia di operazione viene chiamata iterazione.
Nota: è normale che per una buona programmazione le istruzioni all’interno del ciclo WHILE devono in qualche modo influire sul valore o valori valutati nella condizione, altrimenti si avrebbe un ciclo infinito.
a = 0
while a <= 4:
print("sono nel ciclo WHILE")
a += 1
print("Fine ciclo")
Il risultato del ciclo precedente è
>>>
sono nel ciclo WHILE
sono nel ciclo WHILE
sono nel ciclo WHILE
sono nel ciclo WHILE
sono nel ciclo WHILE
Fine ciclo
L’istruzione break
Abbiamo visto che le istruzioni all’interno di un ciclo WHILE vengono ripetute in modo continuo finché la condizione iniziale rimane soddisfatta. A volte però abbiamo bisogno di interrompere incondizionatamente il ciclo e continuare con le istruzioni successive. Questo è possibile inserendo all’interno del costrutto WHILE l’istruzione break.
Generalmente l’istruzione break viene sempre inserita all’interno di un ciclo WHILE tramite un IF che valuta un’ulteriore condizione necessaria per sapere se è necessario uscire incondizionatamente dal ciclo.
i = 0
while True:
print(i)
i += 1
if i > 4:
break
print("Sono fuori dal ciclo")
Il risultato di questo programma è
>>>
0
1
2
3
4
Sono fuori dal ciclo
Come puoi notare dal codice abbiamo utilizzato direttamente il booleano True nella condizione, questo per creare un ciclo infinito.
L’istruzione continue
Esiste un’ulteriore istruzione che può essere utilizzata all’interno di cicli o loop e si chiama continue. Questo comando se eseguito fa continuare il ciclo ripartendo dalla prima istruzione e saltando l’esecuzione delle istruzioni seguenti.
i = 0
while i < 5:
i += 1
if i == 3:
continue
print(i)
print("Sono fuori dal ciclo")
Eseguendo il codice si ottiene:
>>>
0
1
2
4
5
Sono fuori dal ciclo
Come possiamo vedere, l’istruzione continue fa saltare la stampa della stringa quando il valore della variabile è uguale a 3.