Lädt...

break und continue in Java

Lass i von 1 bis 5 laufen. Wenn i gleich 3 ist, verlasse die Schleife mit break, bevor du druckst. Der Bildschirm soll nur zwei Zeilen zeigen: 1, dann 2. Dieser frühe Stopp ist ein Werkzeug auf dieser Seite. Das andere Werkzeug ist continue; es überspringt einen Durchlauf und lässt die Schleife weiterlaufen, sodass 3 nicht gedruckt wird, 4 und 5 aber schon.

break beendet die Schleife früh

Lege eine kleine Programmdatei namens Skip.java an. Die public class in der ersten Zeile muss zum Dateinamen passen: public class Skip. Lass keinen älteren Pulse- oder Beat-Klassennamen in dieser Datei; der Compiler erwartet, dass Klassenname und Dateiname übereinstimmen.
Schreibe in main ein for, das früh stoppen kann:
for (int i = 1; i <= 5; i = i + 1) {
if (i == 3) {
break;
}
System.out.println(i);
}
Der for-Kopf hat dieselbe Form, die du schon kennst: Start, Test, Schritt. Innerhalb der geschweiften Klammern fragt ein if, ob i gleich 3 ist. Wenn das true ist, läuft break;. break verlässt die ganze for-Schleife auf einmal. Das println unter dem if läuft in diesem Durchlauf nicht, und i erreicht in dieser Schleife weder 4 noch 5. Wenn i 1 oder 2 ist, ist das if false, also schreibt println(i) die Zahl. Speichere die Datei, bevor du kompilierst.

Programm, das bei break stoppt

Das ist die Version, die du zuerst kompilierst.

break wenn i gleich 3 ist

java
public class Skip {
    public static void main(String[] args) {
        for (int i = 1; i <= 5; i = i + 1) {
            if (i == 3) {
                break;
            }
            System.out.println(i);
        }
    }
}

Aus dem Ordner, der Skip.java hält, schreibe javac Skip.java. Wenn runde Klammern, geschweifte Klammern und Semikolons passen, schreibt javac keine eigene Zeile. Dann schreibe java Skip — nicht java Skip.java. Lass die Endung .java beim zweiten Befehl weg. Dieselben zwei Befehle funktionieren unter Windows und unter macOS; diese Seite braucht keine andere Shell-Schreibweise für eines der Systeme. Das Programm soll zwei Zeilen drucken und stoppen: 1, dann 2. Es fragt dich nicht nach Tastatur. Wenn das Terminal auf Eingabe wartet, steckt noch ein nextLine-Aufruf aus einer älteren Übung in der Datei. Lösche diesen Aufruf und behalte das for mit break oben. Eine falsche Bildschirmzeile heißt nicht, dass du ein neues JDK brauchst.

Geh den break-Lauf der Reihe nach durch. i startet bei 1. Das if ist false, also schreibt println die 1. Der Schritt speichert 2. Das if ist wieder false, also schreibt println die 2. Der Schritt speichert 3. Jetzt ist i == 3 true, also läuft break und das for endet. Für 3, 4 oder 5 wird nichts gedruckt. Eine einfache Schleife ohne break hätte fünf Zeilen gedruckt; break hat die Schleife nach zwei Drucken verkürzt. Nach break in diesem Durchlauf läuft der Schritt nicht mehr, und der Test wird nicht erneut gestellt, weil die Schleife schon vorbei ist.

continue überspringt einen Durchlauf

Ändere den Rumpf so, dass continue an die Stelle von break tritt, und lass println nach dem if:
for (int i = 1; i <= 5; i = i + 1) {
if (i == 3) {
continue;
}
System.out.println(i);
}
Wenn i gleich 3 ist, überspringt continue; den Rest dieses Durchlaufs — einschließlich println — und das for geht zum Schritt und zum nächsten Test. Die Schleife selbst endet nicht. Der Bildschirm soll vier Zeilen zeigen: 1, 2, 4 und 5. Die Lücke ist dort, wo 3 gewesen wäre.

continue wenn i gleich 3 ist

java
public class Skip {
    public static void main(String[] args) {
        for (int i = 1; i <= 5; i = i + 1) {
            if (i == 3) {
                continue;
            }
            System.out.println(i);
        }
    }
}

Kompiliere und starte erneut: javac Skip.java, dann java Skip. Du solltest vier Zeilen sehen. Den for-Kopf hast du nicht geändert — nur break wurde zu continue. Wenn du vier Zeilen gesehen hast, kannst du break zurücksetzen, um zur ersten Demo zurückzukehren. Beide Versionen sind gültiges Java und zeigen zwei verschiedene frühe Bewegungen in derselben Schleifenform.

Lies den continue-Lauf noch einmal. i geht 1, 2, 3, 4, 5. Für 1 und 2 ist das if false und die Zahlen werden gedruckt. Für 3 überspringt continue das println. Für 4 und 5 werden die Zahlen wieder gedruckt. Die Schleife endet weiterhin normal, wenn i 6 wird. continue beendet das for nie; es überspringt nur den Rest eines Durchlaufs. Nach continue führt das for trotzdem seinen Schritt i = i + 1 aus, also bewegt sich der Zähler weiter, auch wenn dieser Durchlauf nichts gedruckt hat.

📊 Werkzeug und Bildschirm

Werkzeug bei i == 3 Bildschirm
break 1 dann 2
continue 1 dann 2 dann 4 dann 5

Nutze die Tabelle als Kontrolle nach einem Lauf, nicht statt eines Laufs. break lässt zwei Zeilen. continue lässt vier Zeilen mit fehlender 3. Wenn 3 noch erscheint, obwohl du continue meintest, steht println wahrscheinlich über dem if — verschiebe println unter continue, damit der Skip ihn erreichen kann. Repariere die Reihenfolge, statt Java neu zu installieren.

Regeln, die beide Werkzeuge klar halten

break und continue gehören in einen Schleifenrumpf. Ein alleiniges break; in main ohne umgebendes for oder while lässt javac scheitern. Dasselbe gilt für continue;. Auf dieser Seite wählt ein if den Moment: wenn i gleich 3 ist. Später kannst du andere Tests schreiben; die Demos behalten i == 3, damit die Bildschirmänderung leicht zu sehen ist.

break ist nicht continue. break beendet die Schleife. continue überspringt einen Durchlauf und bleibt in der Schleife. Keines der beiden ist das break von der switch-Seite in derselben Weise, wie du es dort benutzt hast — hier ist die umgebende Struktur ein for. Lass kein Pulse-while, das nur zählt, und kein Beat-for ohne if in demselben main und wundere dich dann, warum immer noch jede Zahl von 1 bis 5 gedruckt wird. Das main dieser Sitzung soll das for plus das if mit break oder continue halten.

Eine häufige Verwechslung ist, das Wort selbst zu drucken: System.out.println("break");. Das schreibt die Zeichen break. Es stoppt keine Schleife. Eine andere Verwechslung ist, println(i); vor das if zu setzen, das continue hält, sodass 3 noch gedruckt wird und continue danach nichts mehr zum Überspringen hat. Lass println in beiden Demos nach dem if. Wenn du continue ohne umgebende Schleife schreibst, meldet javac einen Fehler; dasselbe gilt für ein alleiniges break außerhalb jeder Schleife. In der Form dieser Lektion haben diese beiden Wörter nur innerhalb eines Schleifenrumpfs Sinn.

Was du jetzt kannst

Du kannst break in eine Schleife setzen, um früh herauszugehen, oder continue, um einen Durchlauf zu überspringen und weiterzumachen. Ein if kann wählen, wann das geschieht. Die nächste Seite ist for-each; dort läuft eine Schleife über jeden Wert in einer Sammlung, ohne dass du Start, Test und Schritt auf dieselbe Weise von Hand schreibst.

🧠 Testen Sie Ihr Wissen

Bereit zum Start

Testen Sie Ihr Wissen

Fordern Sie sich mit diesem interaktiven Quiz heraus und sehen Sie, wie gut Sie das Thema verstehen

❓
5
Fragen
🎯
70%
Zum Bestehen
♾️
∞
Zeit
🔄
∞
Versuche

📝 Anweisungen

  • Lesen Sie jede Frage sorgfältig
  • Wählen Sie die beste Antwort für jede Frage
  • Sie können das Quiz so oft wiederholen, wie Sie möchten
  • Ihr Fortschritt wird oben angezeigt