Ich habe dieses Schlüsselwort zum ersten Mal gesehen und mich gefragt, ob mir jemand erklären könnte, was es tut.
- Was ist das
continue
Schlüsselwort? - Wie funktioniert es?
- Wann wird es verwendet?
Eine continue
Anweisung ohne Beschriftung wird aus der Bedingung der innersten while
oder do
Schleife und aus dem Aktualisierungsausdruck der innersten for
Schleife erneut ausgeführt. Es wird häufig verwendet, um die Verarbeitung einer Schleife vorzeitig zu beenden und dadurch tief verschachtelte if
Anweisungen zu vermeiden . Im folgenden Beispiel continue
wird die nächste Zeile abgerufen, ohne die folgende Anweisung in der Schleife zu verarbeiten.
while (getNext(line)) {
if (line.isEmpty() || line.isComment())
continue;
// More code here
}
continue
Wird bei einem Label von der Schleife mit dem entsprechenden Label und nicht von der innersten Schleife erneut ausgeführt. Dies kann verwendet werden, um tief verschachtelten Schleifen zu entkommen, oder einfach aus Gründen der Übersichtlichkeit.
Manchmal continue
wird es auch als Platzhalter verwendet, um einen leeren Schleifenkörper klarer zu machen.
for (count = 0; foo.moreData(); count++)
continue;
Die gleiche Anweisung ohne Label existiert auch in C und C ++. Das Äquivalent in Perl ist next
.
Diese Art des Kontrollflusses wird nicht empfohlen, aber wenn Sie dies wünschen, können Sie auch continue
eine begrenzte Form von simulieren goto
. Im folgenden Beispiel continue
wird die leere for (;;)
Schleife erneut ausgeführt.
aLoopName: for (;;) {
// ...
while (someCondition)
// ...
if (otherCondition)
continue aLoopName;
continue
ist irgendwie wie goto
. Kennen Sie sich aus break
? Im Gegensatz dazu ist es einfacher, über sie nachzudenken:
break
Beendet die Schleife (springt zum Code darunter).
continue
Beendet den Rest der Verarbeitung des Codes innerhalb der Schleife für die aktuelle Iteration, setzt die Schleife jedoch fort.
Sehen wir uns ein Beispiel an:
Dies würde die Summe von nur ungeraden Zahlen von 1 bis 100 erhalten.
quelle
Wenn Sie sich den Körper einer Schleife als Unterprogramm vorstellen,
continue
ist das ähnlichreturn
. Das gleiche Schlüsselwort existiert in C und dient dem gleichen Zweck. Hier ist ein erfundenes Beispiel:Dadurch werden nur die ungeraden Zahlen ausgedruckt.
quelle
Im Allgemeinen sehe ich
continue
(undbreak
) als Warnung, dass der Code möglicherweise umgestaltet wird, insbesondere wenn die Deklarationwhile
oder diefor
Schleifendeklaration nicht sofort in Sicht ist. Das gleiche gilt fürreturn
die Mitte einer Methode, jedoch aus einem etwas anderen Grund.Wie andere bereits gesagt haben,
continue
geht es weiter zur nächsten Iteration der Schleifebreak
sich aus der einschließenden Schleife herausbewegt.Dies können Wartungszeitbomben sein, da es keine unmittelbare Verbindung zwischen dem
continue
/break
und der Schleife gibt, die fortgesetzt / unterbrochen wird, außer dem Kontext. Fügen Sie eine innere Schleife hinzu oder verschieben Sie die "Eingeweide" der Schleife in eine separate Methode, und Sie haben einen versteckten Effekt descontinue
/break
Fehlschlags.IMHO ist es am besten, sie als Maß für den letzten Ausweg zu verwenden und dann sicherzustellen, dass ihre Verwendung am Anfang oder Ende der Schleife eng zusammengefasst ist, damit der nächste Entwickler die "Grenzen" der Schleife auf einem Bildschirm sehen kann .
continue
,break
Undreturn
(anders als der One True Return am Ende Ihrer Methode) fallen alle in die allgemeine Kategorie der „versteckten GOTOs“. Sie platzieren die Schleifen- und Funktionssteuerung an unerwarteten Stellen, was schließlich zu Fehlern führt.quelle
"Weiter" in Java bedeutet, dass zum Ende der aktuellen Schleife gewechselt wird. Wenn der Compiler sieht, dass in einer Schleife fortgesetzt wird, wird zur nächsten Iteration übergegangen
Beispiel: Dies ist ein Code zum Drucken der ungeraden Zahlen von 1 bis 10
Der Compiler ignoriert den Druckcode, wenn er sieht, dass er mit der nächsten Iteration fortfährt
quelle
Wie bereits erwähnt,
continue
wird die Verarbeitung des Codes darunter und bis zum Ende der Schleife übersprungen. Dann werden Sie in den Zustand der Schleife versetzt und führen die nächste Iteration aus, wenn dieser Zustand weiterhin besteht (oder wenn ein Flag vorhanden ist, in den Zustand der angegebenen Schleife).Es muss hervorgehoben werden, dass im Fall von
do - while
Sie nach a in den Zustand unten verschoben wirdcontinue
, nicht am Anfang der Schleife.Aus diesem Grund antworten viele Leute nicht richtig, was der folgende Code generiert.
* Wenn Ihre Antwort lautet, dass
aSet
sie nur zu 100% ungerade Zahlen enthält ... liegen Sie falsch!quelle
Fortsetzen ist ein Schlüsselwort in Java und wird verwendet, um die aktuelle Iteration zu überspringen.
Angenommen, Sie möchten alle ungeraden Zahlen von 1 bis 100 drucken
Die Anweisung continue im obigen Programm überspringt einfach die Iteration, wenn i ist, und gibt den Wert von i aus, wenn er ungerade ist.
Die Continue- Anweisung verlässt Sie einfach aus der Schleife, ohne die verbleibenden Anweisungen innerhalb der Schleife auszuführen, und löst die nächste Iteration aus.
quelle
Betrachten Sie eine If Else-Bedingung. Eine continue-Anweisung führt aus, was in einer Bedingung vorhanden ist, und verlässt die Bedingung, dh springt zur nächsten Iteration oder Bedingung. Aber eine Pause verlässt die Schleife. Betrachten Sie das folgende Programm. '
Es wird gedruckt: aa cc Out of the loop.
Wenn Sie break anstelle von continue (After if.) Verwenden, wird nur aa und out of the loop gedruckt .
Wenn die Bedingung "bb" gleich ss ist, ist erfüllt: Für Weiter: Es geht zur nächsten Iteration, dh "cc" .equals (ss). Für Pause: Es kommt aus der Schleife und druckt "Aus der Schleife".
quelle
break
Ich bin ein bisschen zu spät zur Party, aber ...
Erwähnenswert ist, dass
continue
dies für leere Schleifen nützlich ist, bei denen die gesamte Arbeit im bedingten Ausdruck ausgeführt wird, der die Schleife steuert. Zum Beispiel:In diesem Fall erfolgt die gesamte Arbeit zum Lesen und Anhängen eines Zeichens
buffer
in dem Ausdruck, der diewhile
Schleife steuert . Diecontinue
Anweisung dient als visueller Indikator dafür, dass die Schleife keinen Körper benötigt.Es ist etwas offensichtlicher als das Äquivalent:
und definitiv besserer (und sicherer) Codierungsstil als die Verwendung einer leeren Anweisung wie:
quelle
while
Inhalt derwhile
Klausel machen würde und was visuell nicht offensichtlich wäre. Ein explizitescontinue
ist offensichtlich und vermittelt die Absicht, dass eine leere Aussage dies nicht tut.Grundsätzlich ist continue in Java eine Aussage. Daher wird die continue-Anweisung normalerweise mit den Schleifen verwendet, um die aktuelle Iteration zu überspringen.
Wie und wann es in Java verwendet wird, finden Sie unter dem folgenden Link. Es hat eine Erklärung mit Beispiel.
https://www.flowerbrackets.com/continue-java-example/
Ich hoffe es hilft !!
quelle
continue
muss sich in einer Schleife befinden Andernfalls wird der folgende Fehler angezeigt:quelle
Die continue-Anweisung wird in der Schleifensteuerungsstruktur verwendet, wenn Sie sofort zur nächsten Iteration der Schleife springen müssen.
Es kann mit for-Schleife oder while-Schleife verwendet werden. Die Java-Anweisung continue wird verwendet, um die Schleife fortzusetzen. Es setzt den aktuellen Programmfluss fort und überspringt den verbleibenden Code unter den angegebenen Bedingungen.
Bei einer inneren Schleife wird nur die innere Schleife fortgesetzt.
Wir können die Java-Anweisung continue in allen Arten von Schleifen verwenden, z. B. for-Schleife, while-Schleife und do-while-Schleife.
beispielsweise
Ausgabe:
[Nummer 5 ist überspringen]
quelle