was ist der Unterschied zwischen Pause mit Etikett und ohne Etikett in javascript
JS:
var num = 0;
for(var i = 0; i < 10; i++){
for(var j = 0; j < 10 ; j++){
if(i == 5 && j == 5){
break;
}
num++;
}
}
console.log(num)
In dem obigen code, ich erwarte, dass das Ergebnis um 55 aber warum ist das Ergebnis 95.
Aber warum, wenn ich fügte hinzu, das label, das Ergebnis werden 55?
JS:
var num = 0;
outermost:
for(var i = 0; i < 10; i++){
for(var j = 0; j < 10 ; j++){
if(i == 5 && j == 5){
break outermost;
}
num++;
}
}
console.log(num);
Du musst angemeldet sein, um einen Kommentar abzugeben.
wenn verwendet, ohne Etikett, Pause, break die aktuelle Schleife, in Ihrem Fall die innerste bei. So nun j = 6, der Zustand ist jetzt falsch, und das Schleifen geht weiter für 40 mehr Schrittweite.
Wenn Sie ein Etikett, Pause, gehen Sie auf die "Ebene" des Labels, so werden die beiden for-Schleifen übersprungen werden.
Ohne Etikett,
break
brechen aus der inneren Schleife. Mit einem label Sie können die Ausführung beenden von verschachtelten Schleifen.Siehe Beispiele:
https://developer.mozilla.org/en/JavaScript/Reference/Statements/label
Mit
break
ohne ein label, bricht die innerste Schleife, die derzeit ausgeführt werden.Mit
break
mit einem labelfoo
bricht die Anweisung beschriftetfoo
.MDN
break
docs:der Pause gegeben ist, nur die innere for-Schleife.
also, es bricht nur die innere for-Schleife, wenn i = j = 5.
aber die äußere Schleife weiter drehen sich 10-mal.
also, wenn i=j=5 in der Schleife drehen sich nur 5-mal und im rest der Fälle wird es drehen sich 10-mal.
wenn Sie brechen, ohne Beschriftung , nur bricht die innere Schleife (i=5 j=6) ,(i=5 j=7) ,(i=5 j=8, i=5 j=9) und loop erneut beginnt mit (i=6 j=0 bis i=9 j=9), und auch die Anzahl (num ++) startsthats, warum es das Ergebnis zeigen als 95.
bt wenn Sie brechen mit Etikett d.h. brechen äußerste , bricht es aus der Schleife label äußerster Randlage (ich.e der äußeren Schleife), das why6 es gibt Ausgabe als 55
Die erste ist nur zu brechen deine "j" - Schleife. Nachdem er bricht es, gibt es zu Ihr "ich-Schleife", und Inkremente "i" zu 6. Einmal "ich" ist 6, geht es zurück an die "j" - Schleife und die if-Bedingung ist nicht mehr erfüllt. So geht es weiter bis "num".