English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
In questo tutorial, imparerai lo statement break, che in Java è noto come break statement.
Quando si utilizzano cicli, a volte si desidera saltare alcune istruzioni all'interno del ciclo o interrompere immediatamente il ciclo senza verificare l'espressione di test.
In questo caso, verranno utilizzati gli statement break e continue. Ne parleremo nel capitolo successivoStatement continue.
Il break statement in Java termina immediatamente il ciclo, spostando il controllo del programma alla prossima istruzione dopo il ciclo.
Il break statement viene utilizzato quasi sempre insieme agli statement di decisione (Java if ... else statementUtilizzati insieme.
Ecco la sintassi del break statement in Java:
break;
class Test { public static void main(String[] args) {}} //Ciclo for for (int i = 1; i <= 10; ++i) { //Se il valore di i è 5, il ciclo si interrompe if (i == 5) { break; } System.out.println(i); } } }
Output:
1 2 3 4
Nel programma sopra, abbiamo utilizzato un ciclo for per stampare il valore di i in ogni iterazione. Per capire come funziona il ciclo for, visitaJava for loop. Ecco alcune cose da notare qui:
if (i == 5) { break; }
Questo significa che quando il valore di i è uguale a 5, il ciclo si interrompe. Di conseguenza, otteniamo i valori di output inferiori a 5.
Il seguente programma calcola la somma dei numeri inseriti dall'utente fino a quando l'utente non inserisce un numero negativo.
Per accettare l'input dell'utente, abbiamo utilizzato questo oggetto Scanner. Per ulteriori informazioni su Scanner, visitaJava Scanner.
import java.util.Scanner; class UserInputSum { public static void main(String[] args) {}} Double number, sum = 0.0; //Crea un oggetto Scanner Scanner input = new Scanner(System.in); while (true) { System.out.print("Inserisci un numero: "); //Accetta le due volte di input dell'utente number = input.nextDouble(); //Se number è negativo, il ciclo termina if(number < 0.0) { break; } sum += number; } System.out.println("Sum = " + sum); } }
Output:
Inserisci un numero: 3.2 Inserisci un numero: 5 Inserisci un numero: 2.3 Inserisci un numero: 0 Inserisci un numero: -4.5 Sum = 10.5
Nella programma sopra, l'espressione di test del ciclo while è sempre true. Notate questa riga,
if(number < 0.0) { break; }
Questo significa che quando l'utente inserisce un numero negativo, il ciclo while termina.
PerCicli annidati,La语句break termina il ciclo interno più interno.
In questo caso, la语句break termina il ciclo while più interno e il controllo salta al ciclo esterno.
Fino ad ora, abbiamo utilizzato la语句 senza etichetta. Essa termina il ciclo interno e le语句switch. Ma in Java c'è un'altra forma di语句 chiamata语句con etichetta.
Possiamo anche utilizzare la语句con etichetta per interrompere il ciclo esterno.
Come mostrato nell'immagine sopra, utilizziamo l'identificatore label per specificare il ciclo esterno. Ora, notate come viene utilizzata la语句break (break label;).
In questo caso, la语句break termina la语句 etichettata (cioè il ciclo esterno). Poi, il programma salta alla语句 successiva dopo la语句 etichettata.
Ecco un altro esempio:
while(testExpression) { //Codice second: while(testExpression) { //Codice while(testExpression) { //Codice break second; } } //Il controllo salta qui }
Nell'esempio sopra, quando viene eseguita la语句 break second; dopo l'esecuzione, il ciclo while etichettato come Second termina. E il controllo del programma si sposta alla语句 successiva dopo il ciclo while.
class LabeledBreak { public static void main(String[] args) {}} //Il ciclo for è etichettato come first first: for(int i = 1; i < 5; i++) { //Il ciclo for è etichettato come second second: for(int j = 1; j < 3; j++) { System.out.println("i = " + i + "; j = " + j); //La语句break termina il primo ciclo for if ( i == 2 ) break first; } } } }
Output:
i = 1; j = 1 i = 1; j = 2 i = 2; j = 1
Nell'esempio sopra, la语句labeled break è utilizzata per interrompere il ciclo etichettato come first. Questo è,
first: for(int i = 1; i < 5; i++) {...}
In questo caso, se modificiamo break first; in break second; il comportamento del programma sarà diverso. In questo caso, il ciclo for etichettato come second sarà interrotto. Ad esempio,
class LabeledBreak { public static void main(String[] args) {}} //Il ciclo for è etichettato come first first: for(int i = 1; i < 5; i++) { //Il ciclo for è etichettato come second second: for(int j = 1; j < 3; j++) { System.out.println("i = " + i + "; j = " + j); //L'istruzione break termina il ciclo etichettato second if ( i == 2 ) break second; } } } }
Output:
i = 1; j = 1 i = 1; j = 2 i = 2; j = 1 i = 3; j = 1 i = 3; j = 2 i = 4; j = 1 i = 4; j = 2
Attenzione:L'istruzione break viene utilizzata anche per terminare il caso di un'istruzione switch. Per ulteriori informazioni, visitareSentenza switch Java.