P.20 Break e Continue nel ciclo While

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.