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 { … }:
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:
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 [].
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:
const eta = 20;
const stato = eta >= 18 ? 'adulto' : 'minorenne';Spróbuj sam
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.
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
Zaklasyfikuj temperaturę: 'caldo', jeśli wynosi >= 25, 'tiepido', jeśli >= 15, w przeciwnym razie 'freddo'. Dla `t = 20` oczekiwanym wynikiem jest 'tiepido'.
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