Słowo kluczowe break może występować w dwóch formach:

  • forma samodzielna, bez etykiety
  • wskazanie etykiety, która ma zostać wywołania

Słowo kluczowe break bez etykiety

Samodzielne słowo break może zostać użyte tylko w kontekście pętli (for, while, do-while) oraz konstrukcji switch.

W przypadku pętli powoduje natychmiastowe przerwanie jej wykonywania i przejście do wykonywania nasŧpnej instrukcji po zakończeniu pętli. W przypadku wywołania polecenia wewnątrz wewnętrznej pętli, zostanie przerwane wykonywanie tylko pętli wewnętrznej.

1
2
3
4
5
6
7
8
9
10
11
12
for (int i = 0; i < 10; i++) {
    System.out.print("i = " + i);

    for (int j = i; j < i + 5; j++) {
        System.out.print("  j = " + j);
        if (j < 4) {
            break;
        }
    }

    System.out.println();
}

Użycie break w linii 7 w powyższym kodzie spowoduje przejście aplikacji do wykonywania kody w linii 11 (czyli ciągle wewnątrz pierwszej pętli).

Także break jest niezastąpione podczas używania konstrukcji switch:

1
2
3
4
5
6
7
8
9
10
11
12
13
int test = 1;

switch (test) {
default:
    System.out.println("Wartość domyślna");
case 0:
    System.out.println("Zero");
case 1:
    System.out.println("Jeden");
    break;
case 2:
    System.out.println("Dwa");
}

Co zostanie wydrukowane po uruchomieniu powyższego fragmentu kodu? Zaskoczenia żadnego nie będzie:

Jeden

Czyli zostanie wywołana linia 9, a następnie nastąpi opuszczenie całej konstrukcji switch.

Ale oto co zostanie wypisane na ekranie, jeżeli zmienimy przypisanie int test = 4:

Wartość domyślna
Zero
Jeden

Ponieważ wartość 4 nie ma żadnego przypadku opisanego w switch więc jest wykonywany blok wejścia default. I następnie kod jest wykonywany aż do pierwszego napotkanego słowa break lub też końca konstrukcji switch.

Słowo kluczowe break z etykietą

Istnieje także możliwość podania etykiety po słowie kluczowym break. Konstrukcja to może zostać użyta do zakończenia każdego bloku oznaczonego daną etykietą. Powoduje przejście wykonywania kodu do pierwszej instrukcji następującym po danym bloku kodu oznaczonym etykietą:

1
2
3
4
5
6
7
wyjscie: {
    int j =2;
    if (j == 2)
        break wyjscie;
    System.out.println("Blok danych z etykietą");
}
System.out.println("Koniec");

Po wykonaniu powyższego kodu zostanie wydrukowana tylko pojedyncza linia:

Koniec

Tę wersję konstrukcji break często używa się w połączeniu z zagnieżdżonymi pętlami, pozwala na opuszczenie całej ich struktury bez kłopotliwych testów na poszczególnych jej poziomach.

Tags: , , ,