Die beiden Anweisungen break und continue dienen dazu, den Ablauf einer Schleife gezielt zu beeinflussen. Sie werden häufig in while- und for-Schleifen verwendet, um bestimmte Situationen gezielt zu behandeln, ohne die gesamte Schleifenbedingung zu ändern.
Mit break eine Schleife sofort beenden
Die Anweisung break beendet die Schleife sofort, unabhängig davon, ob die Schleifenbedingung noch true ist. Das Programm setzt danach mit der nächsten Anweisung nach der Schleife fort.
Beispiel 1 – break in einer while-Schleife
int i = 1;
while (i <= 10)
{
if (i == 5)
break; // Schleife wird bei i == 5 beendet
System.out.println(i);
i++;
}
System.out.println("Ende der Schleife");
Ausgabe:
1 2 3 4 Ende der Schleife
Die Schleife läuft bis i den Wert 5 erreicht. Ist das der Fall, wird break ausgeführt und die Schleife sofort verlassen.
Beispiel 2 - break in einer for-Schleife
int sum = 0;
for (int i = 1; i <= 10; i++)
{
sum += i;
if (sum > 30) break;
}
System.out.println(sum);
Hier wird die Schleife abgebrochen, sobald die berechnete Summe größer als 30 ist. Dies ist der Fall, wenn sum den Wert 36 erreicht hat. Es wird also 36 angezeigt.
Flussdiagramm zum Beispiel 2
Autor: Ulrich Helmich 2025, Lizenz: Public domain
Man hätte diese for-Schleife natürlich auch so definieren können:
int sum = 0;
for (int i = 1; i <= 10 && sum <= 30; i++)
{
sum += i;
}
System.out.println(sum);
Hier bleibt es dem Betrachter überlassen, zu entscheiden, welche Variante der bessere Programmierstil ist. Allgemein kann man jedoch sagen: Wenn die Abbruchbedingung von vornherein bekannt ist, gehört sie in den Schleifenkopf. break ist dann entbehrlich. break nutzt man gezielt, wenn der Abbruch erst aus dem Schleifenrumpf heraus entschieden werden kann (z. B. nach Berechnungen, bei Treffern, in verschachtelten Schleifen).
Break und return
Mit break kann man also Schleifen jederzeit verlassen. Es wird dann mit dem ersten Befehl weitergemacht, der nach der Schleife kommt. Die Methode, in der sich die Schleife befindet, wird mit break aber nicht verlassen. Das ist der wichtigste Unterschied zum return-Befehl. Mit dem return-Befehl verlässt man nicht die die while- oder for-Schleife sofort, sondern auch die gesamte Methode mit der Schleife.
Mit continue den aktuellen Schleifendurchlauf überspringen
Mit der Anweisung continue wird der aktuelle Schleifendurchlauf abgebrochen, die Schleife läuft aber mit der nächsten Iteration weiter. Das heißt: Alles, was im Schleifenkörper nach der continue-Anweisung steht, wird übersprungen.
Beispiel 3 - continue in einer for-Schleife
for (int i = 1; i <= 10; i++)
{
if (i % 2 == 0)
continue; // geraden Zahlen überspringen
System.out.println(i);
}
Ausgabe:
1 3 5 7 9
Hier werden nur die ungeraden Zahlen ausgegeben. Immer wenn i gerade ist, wird der Rest des Schleifenkörpers übersprungen.
Beispiel 4 – continue in einer while-Schleife
int i = 0;
while (i < 10)
{
i++;
if (i == 5)
continue; // Zahl 5 wird ausgelassen
System.out.println(i);
}
Ausgabe:
1 2 3 4 6 7 8 9 10
In diesem Beispiel wird die Zahl 5 übersprungen, weil bei i == 5 die continue-Anweisung den Rest der Schleife (die Ausgabe) überspringt.
Zusammenfassung
- break beendet die gesamte Schleife sofort.
- continue beendet nur den aktuellen Schleifendurchlauf.
- Beide Anweisungen können in while-, for- und do-while-Schleifen eingesetzt werden.
- Sie sollten sparsam verwendet werden, da sie den Programmablauf weniger übersichtlich machen können.
Break und continue in einer Schleife
Beispiel 5 – Kombination von break und continue
for (int i = 1; i <= 10; i++)
{
if (i == 3)
continue; // 3 überspringen
if (i == 8)
break; // bei 8 Schleife beenden
System.out.println(i);
}
Ausgabe:
1 2 4 5 6 7
Die Zahl 3 wird ausgelassen, und bei 8 endet die Schleife vollständig.
Merke:
Break und continue
break verlässt die Schleife, continue überspringt nur den Rest des aktuellen Schleifendurchlaufs.
Quellen:
- Balzert: Java: Der Einstieg in die Programmierung, 5. Auflage 2022
- Barnes, Kölling. Java Lernen mit BlueJ - Objects first - Eine Einführung in Java. Pearson Education 2017.
- Pohl, McDowell: Java by Disscetion, University of California, Santa Cruz 2006.
- Ullenboom: Java ist auch eine Insel - Einführung, Ausbildung, Praxis, Rheinwerk Computing 2024.