ECMAScript break och continue-satser
- Föregående sida break-satsen
- Nästa sida with-satsen
Break och continue-satser ger en mer strikt kontroll över exekveringen av kod i loopen.
Skillnaden mellan break och continue-satser
Break-satsen avslutar omedelbart loopen och förhindrar att någon annan kod i loopen körs igen.
Continue-satsen avslutar bara den aktuella loopen och tillåter fortfarande att nästa iteration körs baserat på kontrolluttrycket.
Exempel:
var iNum = 0; for (var i=1; i<10; i++) { if (i % 5 == 0) { break; } iNum++; } alert(iNum); //Visar "4"
I ovanstående kod itererar for-loopen från 1 till 10 med variabeln i. I loopen kommer if-satsen att kontrollera (med hjälp av modulosoperatorn) om värdet för i kan delas med 5 heltal. Om det kan, kommer break-satsen att utföras. alert visar "4", vilket är antalet gånger loopen körs innan den avslutas.
Om du ersätter break-satsen i detta exempel med en continue-sats kommer resultatet att vara annorlunda:
var iNum = 0; for (var i=1; i<10; i++) { if (i % 5 == 0) { continue; } iNum++; } alert(iNum); //Visar "8"
Här kommer alert att visa "8", vilket är antalet gånger loopen körs. Det kan köras totalt 9 gånger, men när värdet för i är 5 kommer continue-satsen att utföras, vilket gör att loopen hoppas över uttrycket iNum++ och återvänder till början av loopen.
Används tillsammans med taggade satser
Både break-satsen och continue-satsen kan användas tillsammans med taggade satser för att återvända till specifika platser i koden.
Vanligtvis används detta när det finns en loop inom en annan loop, till exempel:
var iNum = 0; outermost: för (var i=0; i<10; i++) { för (var j=0; j<10; j++) { om (i == 5 && j == 5) { break outermost; } iNum++; } } alert(iNum); //Utskrift "55"
I det föregående exemplet representerar taggen outermost den första for-satsen. Under normala omständigheter utförs kodblocket 10 gånger för varje for-sats, vilket innebär att iNum++ normalt kommer att köras 100 gånger, och när det är klart bör iNum vara 100. Här har break-satsen ett parametrar, nämligen taggen för den sats som ska hoppas över efter att loopen har stoppats. På detta sätt kan break-satsen inte bara hoppa ut ur den inre for-loopen (dvs satsen som använder variabeln j), utan också ur den yttre for-loopen (dvs satsen som använder variabeln i). Därför är det slutliga värdet på iNum 55, eftersom när både i och j är lika med 5 kommer loopen att avslutas.
Continue-satsen kan användas på samma sätt:
var iNum = 0; outermost: för (var i=0; i<10; i++) { för (var j=0; j<10; j++) { om (i == 5 && j == 5) { continue outermost; } iNum++; } } alert(iNum); //Utskrift "95"
I föregående exempel tvingar continue-satsen loopen att fortsätta, inte bara den inre loopen, utan också den yttre loopen. När j är lika med 5 inträffar detta, vilket innebär att den inre loopen minskar 5 iterationer, vilket gör att iNum blir 95.
Tips:Det är tydligt att taggade satser som används tillsammans med break och continue är mycket kraftfulla, men överdriven användning kan orsaka problem vid felsökning av kod. Se till att använda taggar som är beskrivande och undvik att nesting för många lager av loopar.
Tips:Vill du veta vad en taggad sats är, läs ECMAScript taggsatser Detta avsnitt.
- Föregående sida break-satsen
- Nästa sida with-satsen