ECMAScript break en continue Statements
- Vorige pagina break-statement
- Volgende pagina with-statement
Break en continue-statement bieden een striktere controle over de uitvoering van code in een lus.
Het verschil tussen break en continue-statement
De break-statement verlaat onmiddellijk de lus en voorkomt dat er opnieuw herhaaldelijk code wordt uitgevoerd.
De continue-statement verlaat alleen de huidige lus en laat het mogelijk om de volgende lus te beginnen op basis van de controle-expressie.
Bijvoorbeeld:
var iNum = 0; for (var i=1; i<10; i++) { if (i % 5 == 0) { break; } iNum++; } alert(iNum); // Uitvoer "4"
In de bovenstaande code itereren de for-lus van 1 tot 10 door de variabele i. In de lichaam van de lus controleert de if-statement (met behulp van de modulo-operator) of de waarde van i deelbaar is door 5. Als dat zo is, wordt de break-statement uitgevoerd. alert toont "4", wat de hoeveelheid keren is dat de lus wordt uitgevoerd voordat deze wordt verlaten.
Als de continue-statement in plaats van de break-statement in dit voorbeeld wordt gebruikt, zal het resultaat verschillend zijn:
var iNum = 0; for (var i=1; i<10; i++) { if (i % 5 == 0) { continue; } iNum++; } alert(iNum); // Uitvoer "8"
Hier, alert zal "8" weergeven, wat de hoeveelheid keren is dat de lus wordt uitgevoerd. De totale hoeveelheid uit te voeren lussen kan 9 zijn, maar wanneer de waarde van i 5 is, wordt de continue-statement uitgevoerd, waardoor de lus wordt overgeslagen en teruggaat naar het begin van de lus.
Gebruik samen met tag-statement
Both break-statement en continue-statement kunnen worden gebruikt samen met tag-statement om naar een specifieke positie in de code terug te keren.
Normaal gesproken doet men dit als er een herhaling binnen een andere herhaling zit, bijvoorbeeld:
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); // Uitvoer "55"
In het hierbovenstaande voorbeeld betekent de tag outermost de eerste for-statement. Normaal gesproken wordt de codeblok van elke for-statement 10 keer uitgevoerd, wat betekent dat iNum++ normaal gesproken 100 keer wordt uitgevoerd. Wanneer deze voltooid is, zou iNum 100 moeten zijn. Hier heeft de break-statement een parameter, namelijk het label van de statement waarnaar de herhaling moet worden gestopt. Op deze manier kan de break-statement niet alleen uit de interne for-statement (bijvoorbeeld de statement met de variabele j) uitstappen, maar ook uit de externe for-statement (bijvoorbeeld de statement met de variabele i). Daarom is de uiteindelijke waarde van iNum 55, omdat de waarden van i en j gelijk zijn aan 5, waardoor de herhaling wordt beëindigd.
Men kan de continue-statement op dezelfde manier gebruiken:
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); // Uitvoer "95"
In het voorbeeld hierboven dwingt de continue-statement de herhaling voort te zetten, niet alleen de interne herhaling, maar ook de externe herhaling. Als j gelijk is aan 5, betekent dit dat de interne herhaling 5 iteraties minder zal hebben, waardoor de waarde van iNum 95 wordt.
Tip:Men kan zien dat tag-staten die samen met break en continue worden gebruikt, zeer krachtig zijn, maar het overmatig gebruik ervan kan problemen veroorzaken bij het debuggen van de code. Zorg ervoor dat de gebruikte tags beschrijvend zijn en dat er niet te veel lagen van herhalingen worden gebruikt.
Tip:Wil je weten wat een tag-statement is, lees dan ECMAScript Label Statements Dit gedeelte.
- Vorige pagina break-statement
- Volgende pagina with-statement