Instrukcje BREAK i CONTINUE

Instrukcja BREAK służy do natychmiastowego przerwania wykonania pętli lub ciągu instrukcji w instrukcji wyboru SWITCH. Wykonanie instrukcji BREAK powoduje skok do pierwszej instrukcji za przerwaną pętlą czy instrukcją wyboru. Instrukcja ta jest zazwyczaj stosowana do przerwania wykonania w instrukcji wyboru SWITCH o której piszę w kolejnym artykule. Użycie w innym celu jest niezalecane i raczej dość rzadko spotykane.

Instrukcja CONTINUE może być użyta wewnątrz pętli i służy do przerwania wykonania danej iteracji pętli – tylko wykonanie bieżącej iteracji jest przerwane, nie zaś wykonanie całej pętli, tak jak to ma miejsce w przypadku instrukcji BREAK.

W przypadku umieszczenia instrukcji BREAK lub CONTINUE w pętli zagnieżdżonej w innej pętli mają one skutek tylko dla pętli w której bezpośrednio się znajdują, ale możliwe jest wskazanie – poprzez etykietę – pętli bardziej zewnętrznej. Przykładowo, uruchomienie programu:

public static void main(String[] args) {
  outerLoop:
  for (int j = 0; ; j += 100) {
    for (int i = 0; i < 5; i++) {
      if ((i + j) % 2 == 1)
        continue;
 
      if (j > 100)
        break outerLoop; // przerywa wykonanie także pętli zewnętrznej
 
      System.out.println(i + j + " jest liczbą parzystą");
    }
  }
}

skutkuje wyświetleniem sekwencji:

0 jest liczbą parzystą
2 jest liczbą parzystą
4 jest liczbą parzystą
100 jest liczbą parzystą
102 jest liczbą parzystą
104 jest liczbą parzystą

Instrukcja CONTINUE z powyższego przykładu nie została oznaczona żadną etykietą, dlatego dotyczy ona wewnętrznej pętli FOR. Instrukcja BREAK z etykietą outerLoop powoduje natomiast przerwanie wykonania obydwu pętli, jako że etykietą tą została oznaczona pętla zewnętrzna.