Das Java setzt fort und bricht Schlüsselwörter

Das Java fährt fort und unterbricht Schlüsselwörter

1. Überblick

In diesem kurzen Artikel werden wir die Java-Schlüsselwörtercontinue undbreak vorstellen und uns darauf konzentrieren, wie sie in der Praxis verwendet werden.

Einfach ausgedrückt, führt die Ausführung dieser Anweisungen zu einer Verzweigung des aktuellen Kontrollflusses und beendet die Ausführung des Codes in der aktuellen Iteration.

2. Diebreak-Anweisung

Die Anweisungbreakhat zwei Formen: unbeschriftet und beschriftet.

image

2.1. Unbeschriftetebreak

Wir können die unbeschriftete Anweisung verwenden, um einefor-,while- oderdo-while-Schleife sowie denswitch-case-Block zu beenden:

for (int i = 0; i < 5; i++) {
    if (i == 3) {
        break;
    }
}

Dieses Snippet definiert einefor-Schleife, die fünfmal iterieren soll. But when counter equals 3, the if condition becomes true and the break statement terminates the loop. Dies bewirkt, dass der Kontrollfluss auf die Anweisung übertragen wird, die nach dem Ende der Schleife vonfor folgt.

Bei verschachtelten Schleifenan unlabeled break statement only terminates the inner loop that it’s in. Äußere Schleifen setzen die Ausführung fort:

for (int rowNum = 0; rowNum < 3; rowNum++) {
    for (int colNum = 0; colNum < 4; colNum++) {
        if (colNum == 3) {
            break;
        }
    }
}

Dieses Snippet hatfor Schleifen verschachtelt. When colNum equals 3, the if the condition evaluates to true and the break statement causes the inner for loop to terminate. Die äußerefor-Schleife iteriert jedoch weiter.

2.2. Beschriftetbreak

Wir können auch eine beschriftetebreak-Anweisung verwenden, um einefor-,while- oderdo-while-Schleife zu beenden. A labeled break terminates the outer loop.

Bei Beendigung wird der Kontrollfluss unmittelbar nach dem Ende der äußeren Schleife an die Anweisung übergeben:

compare:
for (int rowNum = 0; rowNum < 3; rowNum++) {
    for (int colNum = 0; colNum < 4; colNum++) {
        if (rowNum == 1 && colNum == 3) {
            break compare;
        }
    }
}

In diesem Beispiel haben wir ein Label direkt vor der äußeren Schleife eingefügt. WennrowNum gleich 1 undcolNum gleich 3 ist, ergibt die Bedingungiftrue und die Anweisungbreak beendet die äußere Schleife.

Der Kontrollfluss wird dann nach dem Ende der äußerenfor-Schleife auf die Anweisung übertragen.

3. Diecontinue-Anweisung

Die Anweisungcontinuegibt es auch in zwei Formen: unbeschriftet und beschriftet.

image

3.1. Unbeschriftetecontinue

Wir können eine unbeschriftete Anweisung verwenden, um die Ausführung der restlichen Anweisungen in der aktuellen Iteration einerfor-,while- oderdo-while-Schleife zu umgehen. It skips to the end of the inner loop and continues the loop:

int counter = 0;
for (int rowNum = 0; rowNum < 3; rowNum++) {
    for (int colNum = 0; colNum < 4; colNum++) {
        if (colNum != 3) {
            continue;
        }
        counter++;
    }
}

Wenn in diesem SnippetcolNum nicht gleich 3 ist, überspringt die unbeschriftetecontinue-Anweisung die aktuelle Iteration und umgeht so das Inkrement der Variablencounter in dieser Iteration. Die äußerefor-Schleife iteriert jedoch weiter. Das Inkrement voncounter tritt also nur auf, wenncolNum in jeder Iteration der äußerenfor-Schleife gleich 3 ist.

3.2. Beschriftetcontinue

Wir können aucha labeled continue statement which skips the outer loop. verwenden. Beim Überspringen wird der Kontrollfluss an das Ende der äußeren Schleife übertragen, wodurch die Iteration der äußeren Schleife effektiv fortgesetzt wird:

int counter = 0;
compare:
for (int rowNum = 0; rowNum < 3; rowNum++) {
    for (int colNum = 0; colNum < 4; colNum++) {
        if (colNum == 3) {
            counter++;
            continue compare;
        }
    }
}

Wir haben ein Label kurz vor der äußeren Schleife eingeführt. Immer wenncolNum gleich 3 ist, wird die Variablecounter inkrementiert. Die mitcontinuebezeichnete Anweisung bewirkt, dass die Iteration der äußerenfor-Schleife übersprungen wird.

Der Kontrollfluss wird an das Ende der äußerenfor-Schleife übertragen, die mit der nächsten Iteration fortgesetzt wird.

4. Fazit

In diesem Tutorial haben wir verschiedene Möglichkeiten gesehen, die Schlüsselwörterbreak undcontinue als Verzweigungsanweisungen in Java zu verwenden.

Der vollständige Code in diesem Artikel ist inover on GitHub verfügbar.