878 Stimmen

C#-Schleife - break vs. continue

Was ist in einer C#-Schleife (Sie können auch für andere Sprachen antworten) der Unterschied zwischen break y continue als Mittel, 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;
    }
}

2 Stimmen

Blog-Beitrag mit Höhepunkt von unten adamthings.com/post/2012/07/26/

18 Stimmen

continue; stoppt die Verarbeitung der aktuellen row und weiter mit der nächste row aus der Sammlung. Auf der anderen Seite, break; wird die foreach Anweisung vollständig ausgeführt, und die verbleibenden Zeilen werden nie verarbeitet.

0 Stimmen

1614voto

Michael Stum Punkte 172055

break wird die Schleife vollständig verlassen, continue wird nur überspringen die aktuelle Iteration.

Zum Beispiel:

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

    DoSomeThingWith(i);
}

Die Pause führt dazu, dass die Schleife bei der ersten Iteration beendet wird - DoSomeThingWith wird niemals ausgeführt. Dies hier:

for (int i = 0; i < 10; i++) {
    if(i == 0) {
        continue;
    }

    DoSomeThingWith(i);
}

Wird nicht ausgeführt DoSomeThingWith para i = 0 aber die Schleife wird weiter y DoSomeThingWith wird ausgeführt für i = 1 a i = 9 .

404voto

JeremiahClark Punkte 5161

Eine wirklich einfache Möglichkeit, dies zu verstehen, besteht darin, das Wort "Schleife" hinter jedes der Schlüsselwörter zu setzen. Die Begriffe ergeben nun einen Sinn, wenn man sie wie alltägliche Phrasen liest.

break Schleife - Die Schleifenbildung wird unterbrochen und beendet.

continue Schleife - Schleife wird bei der nächsten Iteration weiter ausgeführt.

106voto

SemiColon Punkte 2107

Pause bewirkt, dass der Programmzähler aus dem Bereich der innersten Schleife herausspringt

for(i = 0; i < 10; i++)
{
    if(i == 2)
        break;
}

So funktioniert's

for(i = 0; i < 10; i++)
{
    if(i == 2)
        goto BREAK;
}
BREAK:;

weiter springt an das Ende der Schleife. In einer for-Schleife springt continue zum inkrementellen Ausdruck.

for(i = 0; i < 10; i++)
{
    if(i == 2)
        continue;

    printf("%d", i);
}

So funktioniert's

for(i = 0; i < 10; i++)
{
    if(i == 2)
        goto CONTINUE;

    printf("%d", i);

    CONTINUE:;
}

65voto

BenKoshy Punkte 29349

Wann sollte man abbrechen und wann fortsetzen?

  1. Pause - Es ist wie eine Trennung. Es ist traurig, dass ihr euch trennt. Die Schleife ist aufgeregt.

Break

  1. Weiter - bedeutet, dass Sie heute eine Pause einlegen und das Ganze morgen erledigen (d.h. die aktuelle Iteration überspringen)!

Continue

(Kitschige Geschichten ¯\ () /¯ aber es hilft mir, mich zu erinnern - und Ihnen hoffentlich auch!)

30voto

palmsey Punkte 5754

break würde die foreach Schleife vollständig, continue würde zum nächsten Schritt übergehen DataRow .

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X