L’istruzione break interrompe totalmente l’esecuzione di un ciclo. L’abbiamo utilizzata con i cicli for, ma funziona anche con while. Riprendiamo il listato 1.30, modifichiamolo così che arrivi fino a 9 e inseriamo nel corpo del ciclo l’istruzione break, richiamata quando il conteggio arriva a 5:
count = 0 while (count < 10): print(count, end=" ") count += 1 if (count == 5): break print("END")
Listato 1.33 – Utilizzo di break con un ciclo while.
Eseguendo il codice otterremo:
0 1 2 3 4 END
L’istruzione continue invece fa saltare un’iterazione, ma quando si utilizza all’interno di un ciclo while, bisogna fare molta attenzione a dove la inseriamo perché se la richiamassimo prima dell’istruzione di incremento della variabile count, rischieremmo di non uscire mai dal ciclo.
count = 0 while (count < 10): print(count, end=” “) count += 1 if count == 5: print(“salto”) continue print(“END”)
Listato 1.34 – Utilizzo di break con un ciclo while.
Ecco il risultato prodotto dall’esecuzione del listato 1.34:
0 1 2 3 4 salto 5 6 7 8 9 END
Qui di seguito riporto una differente versione del listato 1.34: qui l’istruzione di incremento è posta dopo la chiamata alla continue. Il ciclo procede incrementando il valore di count fino a che questo non è pari a 5. A questo punto “scatterà” l’if, richiamando la continue e rimandando l’esecuzione all’inizio del ciclo. Purtroppo non raggiungeremo mai l’istruzione di incremento, count resterà ferma a 5 e rimarremo imprigionati nel ciclo.
count = 0 while (count < 10): print(count, end=" ") if count == 5: print("salto") continue count += 1 print("END")
Listato 1.35 – Utilizzo non corretto di continue all’interno di un ciclo while.
Cose da provare
- Scrivete un programma con while e continue che stampi i numeri pari fino a 50.
- Scrivete un programma che conta da 1 a 100 e si interrompe con break al numero 50.
- Modificate il programma precedente chiedendo a che numero si deve interrompere.