Przejdź do głównej treści
eLearner.app
Moduł 1 · Lekcja 4 z 44/32 w kursie~10 min
Lekcje modułu (4/4)

Instrukcje warunkowe: if, else, operator trójargumentowy

Prawie nigdy program nie wykonuje wszystkich swoich instrukcji po kolei. Nieustannie musi decydować: jeśli cena jest poniżej progu, zastosuj rabat; jeśli użytkownik jest zalogowany, pokaż panel; w przeciwnym razie pokaż ekran logowania. Instrukcje służące do podejmowania decyzji nazywamy warunkowymi (conditionals).

if / else

Podstawowa forma to if (condizione) { … } else { … }:

JS
const eta = 20;

if (eta >= 18) {
  console.log('Maggiorenne');
} else {
  console.log('Minorenne');
}

Warunek w nawiasie jest ewaluowany; jeśli jest „prawdziwy” (w JS mówimy na to truthy), wykonywany jest pierwszy blok, w przeciwnym razie drugi.

Łańcuchy else if

Gdy warunków jest więcej niż dwa, łączy się je za pomocą else if:

JS
const punti = 87;
if (punti >= 90) {
  console.log('Eccellente');
} else if (punti >= 70) {
  console.log('Buono');
} else if (punti >= 50) {
  console.log('Sufficiente');
} else {
  console.log('Da migliorare');
}

Tylko pierwsza gałąź, która pasuje, zostanie wykonana.

Truthy i falsy

JS uznaje sześć wartości za „falsy” (fałszopodobne): false, 0, '' (pusty ciąg znaków), null, undefined, NaN. Cała reszta jest truthy — nawet '0', 'false' oraz pusta tablica [].

JS
if ('0') console.log('arriva qui'); // 'arriva qui'
if ([]) console.log('e anche qui'); // 'e anche qui'
if (0) console.log('mai'); // (mai)

Operator trójargumentowy (ternary) cond ? a : b

Gdy instrukcja if/else służy wyłącznie do wyprodukowania jednej wartości, operator trójargumentowy pozwala zapisać to w jednej linii i często jest znacznie bardziej czytelny:

JS
const eta = 20;
const stato = eta >= 18 ? 'adulto' : 'minorenne';

Spróbuj sam

Ćwiczenie#js.m1.l4.e1
Próby: 0Ładowanie...

Dla danej oceny od 0 do 10, zwróć 'promosso', jeśli ocena wynosi >= 6, w przeciwnym razie 'bocciato'. Ostatnie wyrażenie powinno dać wynik 'promosso' dla grade = 7.

Ładowanie edytora...
Pokaż wskazówkę

Użyj operatora trójargumentowego `cond ? a : b` jako ostatniego wyrażenia.

Rozwiązanie dostępne po 3 próbach

Esercizio di ripasso

Ćwiczenie#js.m1.l4.e2
Próby: 0Ładowanie...

Zaklasyfikuj temperaturę: 'caldo', jeśli wynosi >= 25, 'tiepido', jeśli >= 15, w przeciwnym razie 'freddo'. Dla `t = 20` oczekiwanym wynikiem jest 'tiepido'.

Ładowanie edytora...
Pokaż wskazówkę

Możesz zagnieżdżać operatory trójargumentowe: `a >= 25 ? 'caldo' : a >= 15 ? 'tiepido' : 'freddo'`.

Rozwiązanie dostępne po 3 próbach