Instrukcje wyboru w JavaScript

Instrukcja switch to jeden z mechanizmów wyboru w JavaScript. Pozwala wykonywać różne fragmenty kodu w zależności od wartości danej zmiennej lub wyrażenia. Stosuje się ją głównie wtedy, gdy porównujemy jedną zmienną z wieloma możliwymi wartościami.


1. Po co używamy switch?

switch jest alternatywą dla wielu porównań typu:

Instrukcja switch:

  • jest bardziej czytelna,
  • grupuje wiele opcji w jednym miejscu,
  • działa szybciej w przypadkach statycznych wyborów,
  • pozwala wykorzystać mechanizm tzw. fall-through (przechodzenie między przypadkami).

2. Podstawowa składnia switch


3. Jak działa switch? — krok po kroku

  1. JavaScript oblicza wartość wyrażenia w switch (...).
  2. Wyszukuje case, którego wartość jest identyczna (porównanie działa jak ===).
  3. Jeśli znajdzie pasujący case:

  4. wykonuje kod aż do napotkania break.

  5. Jeśli nie znajdzie dopasowania:

  6. wykona blok default (jeśli istnieje).


4. Przykład podstawowy


5. Rola słowa kluczowego break

break zatrzymuje wykonywanie dalszych przypadków. Jeżeli go pomińiesz, wykonanie „spadnie” do następnego bloku case.

Bez break:

Wyjście:

Jeden
Dwa

Z break (prawidłowo):


6. Fall-through — celowe przechodzenie dalej

Czasami świadomie pomijamy break, gdy kilka wartości ma prowadzić do tego samego kodu.

Przykład:

Oba przypadki "jabłko" i "gruszka" mają taki sam wynik.


7. Blok default

default działa jak "domyślna opcja". Wykonuje się, gdy żaden case nie pasuje.

Przykład:

default może znajdować się w dowolnym miejscu, ale standardowo jest na końcu.


8. switch z wyrażeniami

W switch można używać nie tylko zmiennych, ale też wyrażeń:


9. Porównanie działa jak ===

W switch porównania są wykonywane ściśle, tak jak w operatorze ===.

Przykład:

Wynik to:

String

10. switch w połączeniu z funkcjami

Możemy wykonywać funkcje w zależności od przypadku:


11. Zastosowania praktyczne switch

switch sprawdza się szczególnie w sytuacjach:

  • wybór dnia tygodnia,
  • wybór komendy użytkownika,
  • wybór trybu gry,
  • konfiguracje zależne od nazw,
  • obsługa shortcutów klawiatury,
  • routery poleceń w aplikacjach.