English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Guida di Base Java

Controllo dei flussi Java

Array Java

Java orientato agli oggetti (I)

Java Orientato agli oggetti (II)

Java Orientato agli oggetti (III)

Gestione delle Eccezioni Java

Java List

Java Queue (coda)

Java Map collection

Java Set collection

Java Input/Output (I/O)

Java Reader/Writer

Altri argomenti Java

Sentenza break Java

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;

Come funziona il break statement?

Diagramma di flusso del lavoro del Java break statement

Esempio 1: Java break statement

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.

Esempio 2: Java break statement

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.

Interruzioni e cicli annidati in Java

PerCicli annidati,La语句break termina il ciclo interno più interno.

Diagramma di workflow della语句con etichetta utilizzata in cicli annidati

In questo caso, la语句break termina il ciclo while più interno e il controllo salta al ciclo esterno.

语句con etichetta

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.

Diagramma di workflow della语句con etichetta in Java

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.

Esempio 3:语句con etichetta

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.