JavaScript/Instrukcje
Instrukcje warunkowe pozwalają na kierowanie przebeiegiem programu na podstawie warunków.
1. Instrukcja warunkowa if
edytujInstrukcja warunkowa if sprawdza warunek podany w ( ) i w zależności co on zwróci true czy false zostaje wykonany odpowiedni blok kodu.
Tak to wygląda w praktyce:
if( warunek ){ // wykonaj ten blok kody jeżeli // warunek wynosi true } else{ // w innym wypadku wykonaj // ten blok kodu }
1.1 Rozbudowanie intrukcji o dodatkowy warunek
edytujJeżeli potrzebujemy rozbudować naszą instrukcję o dodatkowe warunki możemy użyć dyrektywy else if która sprawdza warunek podany w ( ) zupełnie jak if.
Przykład:
if( warunek1 ){ // jeśli warnuke jest prawdziwy // wykonaj ten blok kodu }else if( warunek2 ){ // jeśli warunek1 zwrócił false // sprawdź warunek2 jeżeli zwróci // true to wyknaj ten blok kodu }else{ // jeżeli żaden warunek nie zostanie // spełniony wykonaj ten blok kodu }
1.2 Rozbudowane warunki
edytujWyobraź sobie sytuację, że potrzebujesz sprawdzić czy liczba x jest równa liczbie y i liczbie z. Mógłbyś zagnieździć instrukcje warunkową sprawdzającą czy x == y a w niej inną instrukcji warunkową sprawdzającą czy x == z ale jest na to znacznie łatwiejszy sposób z wykorzystaniem operatorów logicznych.
Przykład:
// Zły sposób if( x == y){ if(x == z){ // jakieś instrukcje } } // Dobry sposób if( x == y && x == z){ // jakieś instrukcje }
Operatory logiczne zostały opisane w poprzedniej lekcji JavaScript/Operatory#Operatory logiczne
1.2.1 Użycie AND
edytujvar x = 10; var y = 20; var z = 15; // Instrukcja sprawdza czy liczba z jest mniejsza od // liczby y ale jednocześnie większa od liczby x if( z < y && z > x){ // jakieś instrukcje }
Warunek zostanie spełniony tylko wtedy gdy z jest mniejsze niż y i z jest większe od x. W przypadku gdyby z było większe niż y warunek nie zostanie spełniony.
1.2.2 Użycie OR
edytujvar x = 10; var y = 20; var z = 15; // instrukcja sprawdza czy z jest większe // od x lub większe od y if( z > y || z > x){ // jakieś instrukcje }
Warunek zwróci true tylko wtedy gdy z będzie większe niż y lub z będzie większe niż x.
1.3. Ćwiczenie kontrolne
edytujNapisz prosty program sprawdzający czy użytkownik jest pełnoletni oraz czy może zostać prezydentem (musi mieć min. 35 lata)
1.3.1 Rozwiązanie
edytujvar age = 17; if(age < 18){ console.log('Jesteś niepełnoletni i nie możesz zostać prezydentem.'); } else if(age >= 18 && age < 35){ console.log('Jesteś pełnoletni ale nie masz ukończonych 35 lat'); } else{ console.log('Jesteś pełnoletni i możesz zostać prezydentem'); }
2. Instrukcja warunkowa switch
edytujZa pomocą instrukcji warunkowej switch, możesz, w zależności od wartości pewnej zmiennej, wykonywać poszczególne bloki kodu.
switch(zmienna) { case 1: // wykonaj ten kod // gdy zmienna = 1 break; case 2: // wykonaj ten kod // gdy zmienna = 2 break; default: // ten blok wykona się // gdy wartość zmiennej // nie pasuje do powyższych }
Oczywicie wartośćć zmiennej zmienna nie musi być typu number może być typu string, wówczas wartość zmiennej podajemy w cudzysłowiu (" ") Przykład:
var name = "Ala"; switch(name) { case "Ala": console.log('Ala ma kota'); break; case "Basia": console.log('Basia ma psa'); break; default: console.log(`${name} nie ma zwierzątka`); }
Pewnie zastanawiasz się dlaczego na końcu każdego bloku kodu znajduje się dyrektywa break. Wbrew pozorą instrukcja break jest tutaj bardzo ważna ponieważ powiadamia ona przeglądarkę interpretującą nasz kod, że wraz z tym słowem kończy się blok kodu należący do case. Gdby jednak słówka break nie było na końcu każdego bloku to wszystko poniżej wybranego casea zostałoby wykonane.
W tym przypadku program wykonałby wszystkie intrukcje console.log() począwszy od case "Ala" ponieważ taka jest zawartość naszej zmiennej.