ECMAScript-break- und continue-Anweisung
- Vorherige Seite break-Anweisung
- Nächste Seite with-Anweisung
break und continue bieten eine strengere Kontrolle über die Ausführung des Codes im Loop.
Unterschiede zwischen break und continue
Der break-Satz verlässt den Loop sofort und verhindert, dass irgendein Code erneut wiederholt wird.
Der continue-Satz verlässt nur den aktuellen Loop und ermöglicht es, nach der Kontrollbedingung den nächsten Loop fortzusetzen.
Beispiel:
var iNum = 0; for (var i=1; i<10; i++) { if (i % 5 == 0) { break; } iNum++; } alert(iNum); // Ausgabe "4"
Im obigen Code iteriert der for-Loop von 1 bis 10 die Variable i. Im Hauptteil des Loops überprüft das if-Satz (mit dem Modulo-Operator) ob der Wert von i durch 5 teilbar ist. Wenn ja, wird der break-Satz ausgeführt. alert zeigt "4", was die Anzahl der Ausführungen des Loops vor dem Austreten bedeutet.
Wenn das continue-Satz anstelle des break-Satzes in diesem Beispiel verwendet wird, ist das Ergebnis unterschiedlich:
var iNum = 0; for (var i=1; i<10; i++) { if (i % 5 == 0) { continue; } iNum++; } alert(iNum); // Ausgabe "8"
Hier wird alert "8" anzeigen, was die Anzahl der Ausführungen des Loops bedeutet. Die mögliche Gesamtzahl der Ausführungen des Loops beträgt 9, aber wenn der Wert von i 5 ist, wird das continue-Satz ausgeführt, was den Loop überspringt iNum++ und zurück zum Anfang des Loops kehrt.
Mit etikettierten Anweisungen verwendet
break-Anweisungen und continue-Anweisungen können zusammen mit etikettierten Anweisungen verwendet werden, um zu bestimmten Positionen im Code zurückzukehren.
Normalerweise wird dies so getan, wenn es innerhalb einer Schleife noch weitere Schleifen gibt, zum Beispiel:
var iNum = 0; outermost: for (var i=0; i<10; i++) { for (var j=0; j<10; j++) { if (i == 5 && j == 5) { break outermost; } iNum++; } } alert(iNum); // Ausgabe "55"
Im obigen Beispiel stellt das Etikett outermost die erste for-Anweisung dar. Normalerweise wird der Codeblock bei jeder for-Anweisung 10 Mal ausgeführt, was bedeutet, dass iNum++ normalerweise 100 Mal ausgeführt wird und iNum sollte am Ende 100 betragen. Hier hat die break-Anweisung ein Argument, das die Marke der Anweisung ist, zu der nach dem Beenden der Schleife gesprungen wird. Daher kann die break-Anweisung nicht nur aus der internen for-Schleife (d.h. den Anweisungen mit dem Variablen j) aussteigen, sondern auch aus der äußeren for-Schleife (d.h. den Anweisungen mit dem Variablen i) aussteigen. Daher hat iNum am Ende den Wert 55, weil die Schleifen beenden, wenn i und j den Wert 5 haben.
continue-Anweisungen können auf ähnliche Weise verwendet werden:
var iNum = 0; outermost: for (var i=0; i<10; i++) { for (var j=0; j<10; j++) { if (i == 5 && j == 5) { continue outermost; } iNum++; } } alert(iNum); // Ausgabe "95"
Im obigen Beispiel zwingt die continue-Anweisung die Schleife fortzufahren, nicht nur die interne Schleife, sondern auch die äußere Schleife. Wenn j gleich 5 ist, bedeutet dies, dass die interne Schleife 5 Iterationen verringert, was bedeutet, dass iNum den Wert 95 hat.
Hinweis:Es ist erkennbar, dass etikettierte Anweisungen, die mit break und continue kombiniert werden, sehr mächtig sind, aber übermäßige Verwendung kann Schwierigkeiten bei der Fehlerbehebung des Codes verursachen. Stellen Sie sicher, dass die verwendeten Etiketten informativ sind und vermeiden Sie das zu starke Einfügen von Schichten von Schleifen.
Hinweis:Möchten Sie wissen, was eine etikettierte Anweisung ist? Lesen Sie bitte ECMAScript-Label-Anweisung Dieses Kapitel.
- Vorherige Seite break-Anweisung
- Nächste Seite with-Anweisung