1. Einführung
Häufig ist es nicht nötig, alle Iterationen einer Schleife bis zum Ende durchlaufen zu lassen, sondern vorzeitig auszusteigen – zum Beispiel sobald Sie das gesuchte Element gefunden haben. In anderen Fällen soll ein Teil der Arbeit übersprungen und zum nächsten Schritt übergegangen werden (etwa wenn Sie Daten gelesen haben und deren Verarbeitung überspringen möchten). Genau das ist die Steuerung des Kontrollflusses innerhalb einer Schleife.
Die Anweisungen break und continue in Java sind genau dafür vorgesehen. Sehen wir uns an, wie sie funktionieren und wofür sie sich in realen Aufgaben eignen.
2. Die Anweisung break: „Stopp, Maschine!“
Theorie und Syntax
Die Anweisung break wird verwendet, um eine Schleife sofort zu verlassen, egal wo Sie sich in ihrem Rumpf befinden. Sobald die Programmausführung auf break trifft, wird die Schleife beendet, und die Ausführung geht mit der ersten Codezeile nach der Schleife weiter.
while (condition)
{
if (kakoe-to_condition)
{
break;
}
// restlicher Code der Schleife
}
Dasselbe gilt für for und do-while:
for (int i = 0; i < 10; i++)
{
if (kakoe-to_condition)
{
break;
}
// restlicher Code der Schleife
}
Beispiel 1: Primzahlprüfung
Eine Zahl ist prim, wenn sie nur durch 1 und sich selbst teilbar ist. Wir müssen eine Zahl auf Primzahl prüfen: alle potenziellen Teiler von 2 bis n-1 durchgehen. Sobald sich zeigt, dass unsere Zahl durch einen Teiler teilbar ist, brauchen wir nicht weiterzuprüfen – die Zahl ist nicht prim! Wir können die Schleife beenden.
Beispiel:
int number = 111;
boolean found = false;
for (int i = 2; i < number; i++)
{
if (number % i == 0)
{
found = true;
System.out.println("Teiler gefunden " + i );
break; // Wir stoppen die Schleife – es muss nichts weiter gesucht werden!
}
}
if (!found)
{
System.out.println("Kein Teiler gefunden – die Zahl ist prim.");
}
Beispiel 2: Validierung der Benutzereingabe
Schreiben wir eine kleine Anwendung, etwa einen interaktiven Fragebogen zur Datenerfassung:
while (true)
{
System.out.print("Geben Sie Ihr Alter ein: ");
if (console.hasNextInt())
{
int age = console.nextInt();
if (age > 0)
{
System.out.println("Ausgezeichnet! Ihr Alter: " + age);
break; // Daten sind korrekt – wir beenden die Schleife
}
else
{
System.out.println("Fehler! Geben Sie ein positives Alter ein.");
}
}
else
{
System.out.println("Fehler! Geben Sie eine Zahl ein.");
console.nextLine(); // fehlerhafte Eingabe verwerfen
}
}
Wozu das nötig ist:
Manchmal soll eine Schleife unendlich (oder sehr lange) laufen, bis der Benutzer gültige Daten eingibt. Sobald das Ereignis eintritt, das uns passt – setzen wir break ein und verlassen die Schleife endgültig.
3. Die Anweisung continue: „Der Nächste, bitte!“
Theorie und Syntax
Im Unterschied zu break beendet die Anweisung continue nicht die gesamte Schleife, sondern unterbricht nur die aktuelle Iteration: Alles, was nach continue im Schleifenrumpf steht, wird NICHT ausgeführt – es geht zur nächsten Iteration über.
for (int i = 0; i < 10; i++)
{
if (condition)
{
continue;
}
// dieser Teil wird nur ausgeführt, wenn continue nicht ausgelöst wurde
}
Beispiel 3: gerade Zahlen überspringen
Stellen Sie sich vor, Sie sollen nur die ungeraden Zahlen eines Bereichs ausgeben. Die geraden sollen übersprungen werden.
for (int i = 1; i <= 10; i++)
{
if (i % 2 == 0)
{
continue; // ist die Zahl gerade – alles Folgende wird übersprungen!
}
System.out.println("Ungerade Zahl: " + i);
}
Was passiert:
Wenn i = 2, 4, 6... ist, trifft die Schleife auf continue und springt sofort zur nächsten Iteration, ohne System.out.println auszuführen.
Schrittweise Visualisierung:
| i | i % 2 == 0 | Aktion |
|---|---|---|
| 1 | false | print, kein continue |
| 2 | true | continue, kein print |
| 3 | false | print, kein continue |
| ... | ... | ... |
Die Anweisungen break und continue werden sehr häufig verwendet – praktisch in jeder zweiten Schleife. Sie werden gern mit ihnen arbeiten.
GO TO FULL VERSION