"Ciao Amico!
"Ciao Eli."
"Hai già studiato i loop, ed è fantastico."
"Sono d'accordo! Ora non so assolutamente come vivere senza di loro."
"A volte puoi farne a meno... Ma più spesso ne avrai bisogno. Oggi parleremo della situazione in cui devi uscire da un giro prima del previsto."
"Vuoi dire, quando la condizione per continuare il ciclo è vera, ma hai ancora bisogno di uscire dal ciclo?"
"Esattamente! A volte sembra che tu sia già un programmatore. Ad ogni modo, per uscire da un ciclo prima del previsto, puoi usare l' istruzione break . Dai un'occhiata al seguente esempio:
Codice | Spiegazione |
---|---|
|
Il programma leggerà una riga dalla tastiera, finché non si inserisce "exit" . |
"Capisco. Il programma legge le righe dalla console. Se inserisci "exit"
, la isExit
variabile diventa true
, la condizione del ciclo sarà e il ciclo terminerà."!isExit
false
"Esatto. Quindi, Java ha un'istruzione speciale break
che ti consente di semplificare tale logica. Se un'istruzione break
viene eseguita all'interno di un ciclo, il ciclo termina immediatamente. Il programma inizierà a eseguire l'istruzione che segue il ciclo. L'istruzione è molto breve :
break;
"Ecco come puoi usare l' break
istruzione per riscrivere l'esempio che abbiamo appena discusso:
Codice | Spiegazione |
---|---|
|
Il programma leggerà una riga dalla tastiera, finché non si inserisce "exit" . |
"Forse lo ricorderò. Sento che mi tornerà utile."
"Ma break
non è l'unica istruzione Java che ti consente di controllare il comportamento di un ciclo. Java ha anche l' continue
istruzione. Se esegui un'istruzione continue
all'interno di un ciclo, l'iterazione corrente del ciclo terminerà prima del previsto."
"Cosa intendi per iterazione?"
"Un'iterazione del ciclo è un'esecuzione del corpo del ciclo. L' continue
istruzione interrompe l'iterazione corrente del ciclo, ma a differenza break
dell'istruzione, non termina il ciclo stesso. L'istruzione è anche breve:
continue;
"Quindi, l' continue
istruzione può essere utilizzata in un ciclo se vogliamo 'saltare' l'esecuzione di determinate iterazioni del ciclo?"
"Esattamente. Capisci la differenza tra break
e continue
? Se hai bisogno di trovare un sette tra 20 cifre non ripetitive, che tipo di dichiarazione di interruzione del ciclo e del ciclo useresti?
"Hmm... esaminerei tutti i numeri, e se trovo 7, allora eseguirei un break
."
"Cosa succede se è necessario visualizzare i numeri da 1
a 20
ad eccezione dei numeri divisibili per 7
?"
"Beh, qui probabilmente ho bisogno continue
, dato che non voglio uscire dal giro. Ma continuo a non capire bene."
"Lascia che ti mostri come risolvere questo problema. Ecco come potrebbe apparire questo codice."
Codice | Spiegazione |
---|---|
|
Il programma visualizza i numeri da 1 a 20 . Se il numero è divisibile per 7 (il resto della divisione per 7 è 0 ), saltiamo la visualizzazione del numero. |
"Perché mi guardi in modo così sospettoso, Ellie? C'è qualche trucco qui?"
"Non puoi farti ingannare, Amigo! In effetti, questo codice non funzionerà correttamente . Visualizzerà le prime 6 cifre, e poi i
rimarrà per sempre bloccato sul numero 7
. Dopotutto, l' continue
istruzione salta altre due istruzioni: System.out.println(i)
e i++
. Come di conseguenza, una volta raggiunto il valore 7
, la variabile i
smetterà di cambiare e ci ritroveremo in un ciclo infinito. Ho scritto il codice in questo modo apposta per illustrare un errore molto comune."
"Come lo ripariamo?"
"Ci sono due opzioni qui:"
Opzione 1: modifica i
prima dell'esecuzione continue
, ma dopoi % 7
Opzione 2: incrementare sempre i
all'inizio del ciclo. Ma allora i
il valore iniziale deve essere 0
.
opzione 1 | opzione 2 |
---|---|
|
|
"Eccellente! Cercherò di non commettere questo errore."
"Ricorderò la tua promessa!"
GO TO FULL VERSION