Wyrażenie "switch"
Instrukcja switch
w JavaScript jest alternatywą dla wielokrotnych instrukcji if-else
. Umożliwia ona wybranie wykonania określonego bloku kodu na podstawie wartości zmiennej lub wyrażenia. Składnia switch
jest bardziej przejrzysta i czytelna przy dużej liczbie warunków.
Jak działa switch
Struktura switch
porównuje wartość wyrażenia z wartościami podanymi w przypadkach (case
). Gdy znajdzie dopasowanie, wykonuje kod powiązany z tym przypadkiem. Opcjonalnie, możemy dodać przypadek default
, który zostanie wykonany, gdy żaden z przypadków case
nie pasuje.
Składnia
Podstawowa składnia instrukcji switch
wygląda następująco:
switch (wyrażenie) {
case wartość1:
// kod do wykonania, gdy wyrażenie === wartość1
break; // przerywa instrukcję switch
case wartość2:
// kod do wykonania, gdy wyrażenie === wartość2
break;
// itd.
default:
// kod do wykonania, gdy żaden przypadek nie pasuje
}
Przykład
Załóżmy, że tworzymy prostą grę, w której gracz wybiera opcję z menu:
let wyborGracza = 'Zapisz grę';
switch (wyborGracza) {
case 'Rozpocznij grę':
console.log('Rozpoczynanie nowej gry...');
break;
case 'Wznów grę':
console.log('Wznawianie gry...');
break;
case 'Zapisz grę':
console.log('Zapisywanie gry...');
break;
default:
console.log('Nieznana opcja.');
}
Tak więc w sytuacji, gdy mamy wiele warunków, które zależą od wartości jednej zmiennej lub wyrażenia, switch
jest zwykle bardziej przejrzysty niż wielokrotne if-else
. Jest to szczególnie przydatne, gdy mamy do czynienia z wieloma różnymi wartościami, które wymagają różnych akcji.
Dobre praktyki
- Używaj
break
: Po każdym przypadkucase
użyjbreak
, aby zapobiec przypadkowemu “prześlizgnięciu” do kolejnego przypadku. - Przypadek
default
: Zawsze warto mieć przypadekdefault
, nawet jeśli jest on pusty. Zapewnia to, że kod jest przygotowany na nieoczekiwane wartości. - Czytelność: Używaj
switch
, gdy ma to sens dla czytelności i struktury kodu. Nie jest to zawsze najlepsze rozwiązanie, szczególnie gdy warunki są skomplikowane lub nie opierają się tylko na równości.
switch (true)
Przydatnym i często spotykanym sposobem wykorzystania switch
jest zapis switch (true)
. Wtedy w blokach case
możemy umieścić warunki i uruchomić ten, który ma wartość true
. Przykład:
let liczba = 5;
switch (true) {
case liczba < 0:
console.log('Liczba jest mniejsza od zera.');
break;
case liczba > 0:
console.log('Liczba jest większa od zera.');
break;
default:
console.log('Liczba jest równa zero.');
}