Verwendung von 'continue' keywoard in einem Switch-Nest innerhalb einer foreach-Schleife [geschlossen]

8

Ich habe den Code unten (der eigentlich viel länger ist als du siehst!)

%Vor%

Wird der continue keywoard angezeigt, weil die foreach-Schleife mit dem nächsten Element beginnt oder die nächste case -Anweisung gerade passiert?

Wenn es nichts mit der foreach-Schleife zu tun hat, wie kann ich den Code zwingen, den Schalter zu verlassen und die nächste Iteration in der foreach-Schleife zu starten?

    
Saeid Yazdani 07.01.2013, 22:14
quelle

1 Antwort

18

Ja, es setzt die foreach Schleife fort.

Es ist immer nützlich, die Dokumentation zu lesen ; -)

  

Die continue-Anweisung übergibt die Steuerung an die nächste Iteration von   Einschließen while, do, for oder foreach Anweisung, in der es erscheint.

oder - umfassender - die C # -Sprachspezifikation :

8.9.2 Die continue-Anweisung

  

Die continue-Anweisung startet eine neue Iteration des nächsten umschließenden Objekts   while, do, for oder forheach .

     

Das Ziel einer continue-Anweisung ist der Endpunkt des eingebetteten   Aussage des nächsten Einschließens while, do, for oder forehach   Erklärung. Wenn eine Continue-Anweisung nicht von einer Weile eingeschlossen ist,   Für oder foreach-Anweisung tritt ein Fehler bei der Kompilierung auf.

     

Wenn mehrere While-, Do-, For- oder Foreach-Anweisungen verschachtelt sind   ein continue statement gilt nur für das innerste   Aussage . Um die Kontrolle über mehrere Verschachtelungsebenen zu übertragen, gibt es ein Goto   Aussage (§8.9.3) muss verwendet werden.

     

Eine continue-Anweisung kann einen finally-Block nicht beenden (§8.10). Wenn ein   continue statement tritt innerhalb eines finally blocks auf, dem Ziel des   continue-Anweisung muss innerhalb des gleichen finally-Blocks sein; sonst a   Kompilierungsfehler tritt auf.

     

Eine continue-Anweisung wird wie folgt ausgeführt:

     
  • Wenn die continue-Anweisung einen oder mehrere try-Blöcke mit beendet   zugeordnet schließlich blockiert, wird die Steuerung zunächst an die übertragen   endlich Block der innersten try-Anweisung. Wann und wenn Kontrolle   erreicht den Endpunkt eines finally-Blocks, an den die Steuerung übergeben wird   der finally-Block der nächsten umschließenden try-Anweisung. Dieser Prozess ist   wiederholt bis zum letzten Block aller dazwischenliegenden try-Anweisungen   wurden ausgeführt.

  •   
  • Die Kontrolle wird auf das Ziel des Fortfahrens übertragen   Aussage.

  •   

Weil eine continue-Anweisung bedingungslos die Kontrolle übergibt   An anderer Stelle ist der Endpunkt einer Continue-Anweisung niemals erreichbar.

    
Tim Schmelter 07.01.2013, 22:17
quelle