Was ist der Unterschied zwischen break und continue in einer C # -Schleife (Sie können gerne für andere Sprachen antworten), um die Struktur der Schleife zu verlassen und zur nächsten Iteration zu gelangen?
Beispiel:
foreach (DataRow row in myTable.Rows)
{
if (someConditionEvalsToTrue)
{
break; //what's the difference between this and continue ?
//continue;
}
}
c#
loops
enumeration
Seibar
quelle
quelle
continue;
stoppt die Verarbeitung des aktuellenrow
und fährt mit dem nächstenrow
aus der Sammlung fort. Auf der anderen Seitebreak;
wird dieforeach
Anweisung vollständig verlassen und die verbleibenden Zeilen werden nie verarbeitet.Antworten:
break
verlässt die Schleife vollständig und überspringtcontinue
nur die aktuelle Iteration.Zum Beispiel:
Die Unterbrechung führt dazu, dass die Schleife bei der ersten Iteration beendet wird -
DoSomeThingWith
wird niemals ausgeführt. Das hier:Wird nicht ausführen
DoSomeThingWith
füri = 0
, aber die Schleife wird fortgesetzt undDoSomeThingWith
wird ausgeführt werden ,i = 1
zui = 9
.quelle
Ein wirklich einfacher Weg, dies zu verstehen, besteht darin, das Wort "Schleife" nach jedem der Schlüsselwörter zu setzen. Die Begriffe sind jetzt sinnvoll, wenn sie nur wie alltägliche Sätze gelesen werden.
break
Schleife - Schleife ist unterbrochen und stoppt.continue
loop - loop wird mit der nächsten Iteration weiter ausgeführt.quelle
break bewirkt , dass der Programmzähler aus dem Bereich der innersten Schleife springt
Funktioniert so
Springe weiter bis zum Ende der Schleife. Springen Sie in einer for-Schleife weiter zum Inkrementausdruck.
Funktioniert so
quelle
for
dies jedoch für vor und nach dem Test getestetewhile
Loops? Diegoto
Notation lässt mich das glauben, muss aber überprüft werden.while
("vorab getestet") als auch fürdo
-while
(" nachgeprüft ") wird nach Erfüllung einercontinue;
Anweisung als Nächstes die Schleifenbedingung ausgewertet, um zu entscheiden, ob eine zusätzliche Iteration durchgeführt werden soll. Wennbreak;
die Schleifenbedingung nicht überprüft wird, wird die Schleife natürlich einfach vollständig verlassen. Diegoto
Analogie ist also auch gut, um diesen Aspekt zu verstehen.Ich war immer verwirrt, ob ich break verwenden oder weitermachen sollte. Das hilft mir, mich zu erinnern:
Wann soll break vs continue verwendet werden?
quelle
break
würde dieforeach
Schleife vollständig stoppen ,continue
würde zum nächsten springenDataRow
.quelle
Es gibt mehr als ein paar Leute , die nicht wie
break
undcontinue
. Die letzte Beschwerde, die ich über sie gesehen habe, war in JavaScript: The Good Parts von Douglas Crockford. Aber ich finde, dass die Verwendung einer davon manchmal die Dinge wirklich vereinfacht, besonders wenn Ihre Sprache keinedo-while
oder einedo-until
Art von Schleife enthält.Ich neige dazu,
break
in Schleifen zu verwenden, die eine Liste nach etwas durchsuchen. Einmal gefunden, macht es keinen Sinn, fortzufahren, also können Sie genauso gut aufhören.Ich verwende,
continue
wenn ich etwas mit den meisten Elementen einer Liste mache, möchte aber trotzdem einige überspringen.Die
break
Aussage ist auch nützlich, wenn Sie nach einer gültigen Antwort von jemandem oder etwas fragen. Anstatt:Sie könnten einige Duplikate beseitigen und verwenden:
Die
do-until
zuvor erwähnte Schleife ist die elegantere Lösung für dieses spezielle Problem:Keine Vervielfältigung und auch nicht
break
erforderlich.quelle
Alle haben eine sehr gute Erklärung gegeben. Ich poste immer noch meine Antwort, um nur ein Beispiel zu geben, wenn das helfen kann.
Hier ist die Ausgabe:
Daher werden 3 [Gedruckt] und 4 [Gedruckt] nicht angezeigt, da bei i == 3 eine Unterbrechung auftritt
Hier ist die Ausgabe:
Daher wird 3 [Gedruckt] nicht angezeigt, da bei i == 3 fortgefahren wird
quelle
Brechen
Break zwingt eine Schleife, sofort zu beenden.
Fortsetzen
Dies macht das Gegenteil von Pause. Anstatt die Schleife zu beenden, wird sie sofort erneut wiederholt, wobei der Rest des Codes übersprungen wird.
quelle
Continue
ist nicht das Gegenteil vonbreak
,break
stoppt die Schleife,continue
stoppt die aktuelle Iteration.Einfache Antwort:
Break verlässt die Schleife sofort.
Weiter beginnt mit der Verarbeitung des nächsten Elements. (Wenn es welche gibt, springen Sie zur Bewertungszeile des for / while)
quelle
Zum Beispiel
Druckt 1, 2, 3 (in separaten Zeilen).
Fügen Sie eine Unterbrechungsbedingung bei i = 2 hinzu
Jetzt druckt die Schleife 1 und stoppt.
Ersetzen Sie die Pause durch eine Fortsetzung.
Nun werden die Drucke 1 und 3 wiederholt (2 übersprungen).
Somit
break
stoppt die Schleife, währendcontinue
springt zum nächsten Iteration.quelle
Ruby ist leider etwas anders. PS: Mein Gedächtnis ist etwas verschwommen, also entschuldige mich, wenn ich falsch liege
Anstelle von break / continue gibt es break / next, die sich in Bezug auf Schleifen gleich verhalten
Schleifen (wie alles andere auch) sind Ausdrücke und "geben" das Letzte zurück, was sie getan haben. Meistens ist es sinnlos, den Rückgabewert aus einer Schleife zu erhalten, also macht das einfach jeder
Sie können dies jedoch tun
JEDOCH "emuliert" viel Ruby-Code eine Schleife mithilfe eines Blocks. Das kanonische Beispiel ist
Da es viel häufiger vorkommt, dass Menschen Dinge mit dem Ergebnis eines Blocks tun möchten, wird es hier unordentlich. break / next bedeuten verschiedene Dinge im Kontext eines Blocks.
break springt aus dem Code heraus, der den Block aufgerufen hat
next überspringt den Rest des Codes im Block und gibt das, was Sie angeben, an den Aufrufer des Blocks zurück. Ohne Beispiele macht das keinen Sinn.
Also ja. Ruby ist großartig, aber es gibt einige schreckliche Eckfälle. Dies ist das zweitschlechteste, das ich in meinen Jahren gesehen habe :-)
quelle
Bitte lassen Sie mich das Offensichtliche sagen: Beachten Sie, dass das Hinzufügen von weder break noch continue Ihr Programm fortsetzt. Das heißt, ich habe einen bestimmten Fehler abgefangen. Nachdem ich ihn protokolliert hatte, wollte ich die Verarbeitung fortsetzen, und zwischen der nächsten Zeile befanden sich weitere Codeaufgaben, sodass ich ihn einfach durchfallen ließ.
quelle
Um vollständig aus einer foreach-Schleife auszubrechen , wird break verwendet.
Um zur nächsten Iteration in der Schleife zu gelangen, wird continue verwendet.
Break ist nützlich, wenn Sie eine Sammlung von Objekten (z. B. Zeilen in einer Datentabelle) durchlaufen und nach einer bestimmten Übereinstimmung suchen. Wenn Sie diese Übereinstimmung finden, müssen Sie die verbleibenden Zeilen nicht weiter durchlaufen, sodass Sie eine Pause einlegen möchten aus.
Weiter ist nützlich, wenn Sie in einer Schleifeniteration das erreicht haben, was Sie benötigen. Normalerweise müssen Sie nach einem Wenn fortfahren .
quelle
Wenn Sie break nicht verwenden möchten, erhöhen Sie einfach den Wert von I so, dass die Iterationsbedingung falsch wird und die Schleife bei der nächsten Iteration nicht ausgeführt wird.
quelle
Wie für andere Sprachen:
quelle