Podsumowanie
Porównuje wyrażenie z danymi etykietami i wykonuje instrukcje z nimi powiązane.
Instrukcja | |
Zaimplementowana w: | JavaScript 1.2, NES 3.0 |
Wersja ECMA: | ECMA-262, Edycja 3 |
Składnia
switch (expression) { case label1:statements1 [break;] caselabel2:statements2 [break;] ... caselabelN:statementsN [break;] default:statements_def [break;] }
Parametry
-
expression
- Wyrażenie, które będzie porównane z każdą etykietą.
-
labelN
- Identyfikator (wartość) wykorzystywany do porównania z wyrażeniem i wykonania odpowiednich instrukcji.
-
statementsN
- Instrukcje, które zostaną wykonane, gdy wyrażenie będzie równe powiązanej etykiecie.
-
statements_def
- Instrukcje, które zostaną wykonane, gdy wyrażenie nie jest równe żadnej etykiecie.
Opis
Jeżeli wyrażenie dopasowano do którejś z etykiet, to program wykona powiązane z nią instrukcje. If multiple cases match the provided value, the first case that matches is selected, even if the cases are not equal to each other.
The program first looks for a case
clause with a label matching the value of expression and then transfers control to that clause, executing the associated statements. If no matching label is found, the program looks for the optional default
clause, and if found, transfers control to that clause, executing the associated statements. If no default
clause is found, the program continues execution at the statement following the end of switch
. By convention, the default
clause is the last clause, but it does not need to be so.
The optional break
statement associated with each case label ensures that the program breaks out of switch once the matched statement is executed and continues execution at the statement following switch. If break
is omitted, the program continues execution at the next statement in the switch
statement.
Przykłady
Przykład: Zastosowanie switch
W poniższym przykładzie, jeżeli expression
jest równe "Banany", program szuka odpowiedniej etykiety, czyli "Banany" i wykonuje powiązane z nią instrukcje. Kiedy instrukcja break
zostanie napotkana, program wychodzi ze switch
i wykonuje instrukcje następujące zaraz po switch
. Jeżeli break
nie został napotkany, instrukcje powiązane z etykietą "Wisnie" zostaną również wykonane.
var expression = "Banany"; switch (expression) { case "Pomarancze": document.write("Pomarańcze są za 10zł. Ma być?<br>"); break; case "Jablka": document.write("Jabłka są za 5zł. Ma być?<br>"); break; case "Banany": document.write("Banany są za 9zł. Ma być?<br>"); break; case "Wisnie": document.write("Wiśnie są za 30zł. Ma być?<br>"); break; default: document.write("Niestety, nie mamy czego chcesz.<br>"); } document.write("Coś jeszcze?<br>");