To na czym się skupię w dzisiejszym materiale o języku JavaScript, nawiązuje do artykułu o instrukcjach warunkowych i jest ono całkowicie opcjonalne. Nie będzie się wymagało od Ciebie koniecznie wiedzy na ten temat, aczkolwiek jest to coś, co w niektórych sytuacjach sprawi, że kod stanie się piękniejszy ❤️. Chodzi mi o instrukcję wielokrotnego wyboru, a rozpoznasz ją po słowie "switch" w języku JavaScript ✨!

"SWITCH" W JĘZYKU JAVASCRIPT WCALE NICZEGO NIE PRZEŁĄCZA

Nie sugeruj się angielskim w tym przypadku tak dosłownie 😄! Chodzi o zdefiniowanie wielu ścieżek, którymi program może podążyć w zależności od warunku 💡. Czy nie dotyczy do instrukcji warunkowych? Prawda, aczkolwiek pisze się inaczej i zachowuje się nieco inaczej 😲!

Zacznijmy od postaci składniowej!

JAK UTWORZYĆ INSTRUKCJĘ "SWITCH" W JĘZYKU JAVASCRIPT?

Oto postać instrukcji "switch" w języku JavaScript 👇:

switch ([zmienna]) {
	case A:
		// instrukcje wykonywane wtedy i tylko wtedy, gdy [zmienna] jest równa A
		break;
	
	case B:
		// instrukcje wykonywane wtedy i tylko wtedy, gdy [zmienna] jest równa B
		break;
	
	default:
		// instrukcje wykonywane wtedy i tylko wtedy, gdy [zmienna] posiada inną wartość niż A oraz B
	break;
}

Mamy tu dużo szczegółów niepokazywanych w żadnej z poprzednich części, więc wszystko powolutku wytłumaczę wiersz po wierszu.

Pierwszą rzeczą jaką zawsze dajemy, to jest słowo kluczowe "switch" w języku JavaScript. Zaraz po nim, wprowadzamy parę nawiasów okrągłych, a wewnątrz nich umieszczamy uwaga…samą nazwę zmiennej! Nie warunek, jak to było przy instrukcji "if". SAMĄ ZMIENNĄ 🚨!

Następnie otwieramy klamerki, a wewnątrz nich definiujemy ścieżki razem z blokami instrukcji.

Mamy następne słowo kluczowe, "case"!!!

CZYM JEST "CASE" W INSTRUKCJI "SWITCH" W JĘZYKU JAVASCRIPT?

To jest "otwarcie" nowego bloku instrukcji dla określonej sytuacji i to TUTAJ umieszczamy warunek tylko...jest to ograniczone 😳. O tym już za chwilę, a na razie popatrzmy na to, co się dzieje dalej.

Po słowie "case" wstawiamy stałą wartość, tak samo jakbyśmy porównywali wartość zmiennej do jakiejś stałej (np. czy zmienna "kilogramy" jest równa 54), a zaraz po niej ląduje dwukropek ℹ️!

case A:

Pamiętaj o nim bowiem pominięcie go, zostanie potraktowane jako błąd składniowy ⛔.

Po dwukropku, od nowego wiersza wprowadzasz instrukcje jakie się mają wykonać w przypadku, gdy wartość podanej zmiennej w "switch" będzie taka sama, jak stała wartość podana po "case" ⚠️. Najlepiej sobie zrobić dodatkowe wcięcie, aby podnieść czytelność i niejako podkreślić "przynależność" tychże instrukcji do warunku (bo ono nie jest obowiązkowe 👍).

Kiedy skończysz definiować blok instrukcji, musisz dodać na sam koniec istotny drobiazg 🧨.

JAK DZIAŁA "BREAK" W INSTRUKCJI "SWITCH" W JĘZYKU JAVASCRIPT?

Słowo kluczowe "break", które działa jak kropka w zdaniu 👇:

break

Samo słowo "break" ma kilka znaczeń, a jednym z nich jest ustalenie granicy dla instrukcji w przypadku spełnienia określonego "przypadku" (trzymając się hasła "case").

Niech dopisywanie tego słowa wejdzie Ci w krew ASAP 🚨🚨🚨!!! O tym, dlaczego to jest cholernie ważne, piszę w dalszej części artykułu 👇!

W przypadku zażyczenia sobie zdefiniowania więcej takich bloków instrukcji, zaczynamy tak samo:

  1. słowo kluczowe "case",
  2. wartość stała,
  3. dwukropek,
  4. blok instrukcji z wcięciem,
  5. słowo kluczowe "break",
  6. powtórzyć.

Na samym końcu możesz ujrzeć jeszcze jedno słowo kluczowe: "default".

CZYM JEST SŁOWO "DEFAULT" W INSTRUKCJI "SWITCH" W JĘZYKU JAVASCRIPT?

Nic strasznego, to jest po prostu odpowiednik słowa "else" w instrukcji warunkowej. Jeżeli wszystkie przypadki zawodzą, wtedy "odzywa się" to i wykonuje wszystko zawarte wewnątrz bloku ze słowem "default" 👍.

Dla tych, którzy potrzebują porównania z zapisem tradycyjnym, tak wyglądałby odpowiednik instrukcji "if", kropka w kropkę 👇:

if([zmienna] === A) {
    // instrukcje wykonywane wtedy i tylko wtedy, gdy [zmienna] jest równa A
} else if([zmienna] === B) {
    // instrukcje wykonywane wtedy i tylko wtedy, gdy [zmienna] jest równa B
} else {
    // instrukcje wykonywane wtedy i tylko wtedy, gdy [zmienna] posiada inną wartość niż A oraz B
}

Zanim pozmieniasz wszystkie "if-else" na "switch" w języku JavaScript, muszę Cię uświadomić i ostrzec ⚠️! Instrukcja wielokrotnego wyboru nie składa się wyłącznie z zalety "ładniejszego wyglądania w kodzie" 😮.

Poza falą nowych niespotykanych dotąd słówek kluczowych i składni mogącej sprawić ogromne trudności początkującym, posiada też w sobie pewne ograniczenie oraz perfidną pułapkę, która może spowodować mnóstwo zmarnowanych godzin i kilkaset wyrwanych włosów z głowy 🤯!!!

JAKIE SĄ WADY INSTRUKCJI "SWITCH" W JĘZYKU JAVASCRIPT?

2 wady jakie dotyczą instrukcji "switch" w języku JavaScript, to 👇:

  • ograniczenie się do porównywania jedynie konkretnych wartości,
  • brak powiadomienia o zapomnieniu wstawienia słowa "break" dla bloku "case".

Weźmy teraz przybliżmy sobie szczegóły 🔍!

TYLKO SAME PORÓWNANIA!

Instrukcja "switch" dopuści tylko te bloki "case", które sprawdzają konkretną wartość. Innymi słowy, wolno Ci umieścić tylko wartość stałą!

Na przykład postać 👇:

6 > 3

będzie już błędem składniowym ⛔! Zatem ze sprawdzaniem jakichś przedziałów czy wartość znajduje się w zakresie od A do B, musisz się pożegnać 😢. Wtedy trzeba wrócić do instrukcji "if"...

Teraz o wiele gorsza rzecz 😥.

UWAŻAJ NA SŁOWO "BREAK"!!!

Jak sprawdziłem, instrukcja "switch" w języku JavaScript jest taka sama, jak w języku C i niestety ma w sobie tę samą pułapkę, na którą sam się dałem nabrać wielokrotnie, jak się uczyłem programowania lata temu.

Przypuśćmy, że wyleci Ci z głowy wstawienie słowa "break" przed kolejnym blokiem "case" 👇:

case 1:
    // instrukcje wykonywane wtedy i tylko wtedy, gdy [zmienna] jest równa 1

case 2:
    // instrukcje wykonywane wtedy i tylko wtedy, gdy [zmienna] jest równa 2

default:
    // instrukcje wykonywane wtedy i tylko wtedy, gdy [zmienna] nie jest równa ani 1, ani 2

Zdajesz sobie sprawę co to spowoduje 🤔? "Kaskadowe" wykonywanie kolejnych bloków jak leci, dopóki program nie natrafi na pierwsze słowo "break" albo koniec instrukcji "switch" 😱! Oznacza to, że w przypadku, gdy jakaś zmienna będzie posiadała wartość 1, to wykona się pierwszy blok "case"...a zaraz po nim wykona się też drugi ("case 2:") i wykona się cały blok "default", bo przed nim także nie ma słowa "break" 💥!!! 

Dlatego to jest takie ważne. "break" traktuj jako taki znak "STOP" 🛑 dla przepływu działania programu mówiący: "granica instrukcji leży tu i dalej nie idziesz!" ✋.

Jak wspomniałem, jest to perfidne, bo instrukcja "switch" w języku JavaScript wcale Cię nie uprzedzi ⛔! W żaden sposób, bo nie jest to błąd w rozumieniu błędu składniowego, tylko bardziej błąd semantyczny (błąd polegający na działaniu programu odmiennym od zaplanowanego np. program miał policzyć pole trójkąta prostokątnego, a obliczył przeciwprostokątną ℹ️).

Można zatem sobie śmieszkować, że jeżeli nie umieścisz słowa "break", to kod "złamie" Ciebie 💔.

Instrukcja wielokrotnego wyboru "switch" w języku JavaScript

Instrukcja wielokrotnego wyboru tworzona jest w języku JavaScript za pomocą słowa kluczowego "switch". Potrafi uwydatnić wygląd kodu kosztem wstawiania przedziałów liczbowych w warunku.


Zostałeś(-aś) uprzedzony(-a) na temat zapisu, składni, ograniczeń i konsekwencji z tym związanych ✔️. Właśnie dlatego, że ma to swoje wady i tę pułapkę, uznaję to za wiedzę opcjonalną do opanowania. To może pomóc, jednak jeżeli jesteś nieostrożny(-a), to tylko sobie zaszkodzisz!

PODOBNE ARTYKUŁY