ECMAScript break og continue sætninger
- Forrige side break-sætning
- Næste side with-sætning
Break og continue sætninger giver mere præcis kontrol over udførelsen af kode i løkker.
Forskellen mellem break og continue sætninger
Break-sætningen afslutter løkken med det samme og forhindrer gentagelse af yderligere kode.
Continue-sætningen afslutter kun det aktuelle løkke, og lader kontrolekspresionen tillade at fortsætte med det næste løkke.
For eksempel:
var iNum = 0; for (var i=1; i<10; i++) { if (i % 5 == 0) { break; } iNum++; } alert(iNum); // Uddata "4"
I ovenstående kode itererer for-løkken fra 1 til 10 med variablen i. I løkkenes hoved er if-sætningen (ved hjælp af moduloperator) der tjekker om værdien af i kan divideres med 5 uden rest. Hvis det kan, vil break-sætningen udføres. alert viser "4", hvilket er antallet af gange løkken udføres før det afsluttes.
Hvis continue-sætningen erstattes af break-sætningen i dette eksempel, vil resultatet være forskelligt:
var iNum = 0; for (var i=1; i<10; i++) { if (i % 5 == 0) { continue; } iNum++; } alert(iNum); // Uddata "8"
Her vil alert vise "8", hvilket er antallet af gange løkken udføres. Det samlede antal gange løkken kan udføres er 9, men når værdien af i er 5, vil continue-sætningen udføres, hvilket får løkken til at springe over utrykket iNum++ og returnere til begyndelsen af løkken.
Brug sammen med tagget sætninger
Både break-sætninger og continue-sætninger kan bruges sammen med tagget sætninger for at returnere til en bestemt placering i koden.
Normalt gør man sådan, når der er flere løkker inden for en løkke, for eksempel:
var iNum = 0; outermost: for (var i=0; i<10; i++) { for (var j=0; j<10; j++) { hvis (i == 5 && j == 5) { break outermost; } iNum++; } } alert(iNum); // Uddeler "55"
I det foreliggende eksempel repræsenterer tagget outermost den første for-sætning. Under normale omstændigheder udføres koden i blokken 10 gange for hver for-sætning, hvilket betyder, at iNum++ normalt vil blive udført 100 gange, og når den er færdig, bør iNum være lig med 100. Her har break-sætningen en parameter, nemlig den etiket, som løkken skal stoppe ved. På denne måde kan break-sætningen ikke kun forlade det interne for-løkke (dvs. sætningen med variablen j), men også det ydre for-løkke (dvs. sætningen med variablen i). Derfor er iNum's sidste værdi 55, fordi når både i og j er lig med 5, vil løkkene stoppe.
Man kan bruge continue-sætningen på samme måde:
var iNum = 0; outermost: for (var i=0; i<10; i++) { for (var j=0; j<10; j++) { hvis (i == 5 && j == 5) { continue outermost; } iNum++; } } alert(iNum); // Uddeler "95"
I det foreliggende eksempel vil continue-sætningen tvunget løkken til at fortsætte, ikke kun det interne løkke, men også det ydre løkke. Når j er lig med 5, betyder det, at det interne løkke vil reducere 5 iterationer, hvilket får iNum til at blive 95.
Tip:Det kan ses, at tagget sætninger, der bruges sammen med break og continue, er meget kraftfulde, men overdrivelse kan give problemer med fejlfinding af kode. Sørg for, at de tagget, du bruger, er beskrivende, og undgå at have for mange lag af indlejrede løkker.
Tip:Vil du vide, hvad en tagget sætning er, så læs ECMAScript tag sætninger Dette afsnit.
- Forrige side break-sætning
- Næste side with-sætning