Die Abbruch-Anweisungen break und continue können Label als Argumente benutzen, die die Aufsetzpunkte angeben.
Zur Spezifikation solcher Aufsetzpunkte gibt es markierte Anweisungen
label: statement
break
und
break identifier
Das break ohne Label verläßt die umgebende while-, do-, for- oder switch-Anweisung. Exisitiert die nicht, gibt es einen Übersetzerfehler.
Das break mit Label verläßt die mit dem Label markierte umgebende Anweisung (z.B. auch einen Block). Exisitiert die nicht, gibt es einen Übersetzerfehler.
class breaktry { private float [][] Matrix; boolean find(float val) { boolean found = false; int x, y; search: for (y = 0; y < Matrix.length; y++) for (x = 0; x < Matrix[y].length; x++) if (Matrix[y][x] == val) { found = true; break search; } if (!found) return false; // mach irgendwas mit Matrix[x][y] return true; } }
Darf nur in Schleifen auftreten. Beendet die aktuelle Iteration und fährt mit der Auswertung der Schleifenbedingung fort.
continue mit Label beendet die aktuelle Iteration der markierten Schleife.
continue ohne Label beendet die aktuelle Iteration der direkt umgebenden Schleife.
while (! stream.eof()) { token = strem.next(); if (token.equals("skip")) continue; // Verarbeite token }
Beendet die Ausführung einer Methode und kehrt zum Aufrufer zurück.
Liefert die Methode kein Ergebnis, ist die Form
return;
Liefert die Methode ein Ergebnis, ist die Form
return expression;
wobei expression einen Typ haben muß, der an den Typ des Methodenergebnisses zugewiesen werden kann.
Besonderheit:
return kann auch zum Verlassen von Konstruktoren und Initialisierungsblöcken verwendet werden.