Przejdź do zawartości

JavaScript/Instrukcje

Z Wikibooks, biblioteki wolnych podręczników.

Instrukcje warunkowe pozwalają na kierowanie przebeiegiem programu na podstawie warunków.

1. Instrukcja warunkowa if

[edytuj]

Instrukcja 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

[edytuj]

Jeż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

[edytuj]

Wyobraź 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
[edytuj]
var 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
[edytuj]
var 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

[edytuj]

Napisz 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
[edytuj]
var 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

[edytuj]

Za 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.