Перейти до основного вмісту
Модуль 1 · Урок 4 із 44/32 у курсі~10 min
Модульні уроки (4/4)

Умовні: якщо, інакше, тернарний

Програма майже ніколи не виконує всі свої інструкції по прямій лінії. Це постійно доводиться вирішувати: якщо ціна нижча за порогове значення, застосувати знижка; якщо користувач авторизований, показати панель; інакше покажіть логін. Інструкції, які використовуються для прийняття рішень, називаються умовами.

if / else

Основна форма if (condition) { … } else { … }:

JS
const eta = 20;

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

Оцінюється умова в дужках; якщо це «правдиве» (в JS термінологія) виконується перший блок, інакше другий.

else if ланцюги

Якщо є більше двох випадків, вони об’єднуються в ланцюжок за допомогою 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');
}

Виконується лише перша гілка, яка відповідає.

Правда і брехня

JS вважає шість значень "хибними": false, 0, '' (порожній рядок), null, undefined, NaN. Все інше правдиве — навіть '0', 'false' і порожній масив [].

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

Тернарний оператор cond ? a : b

Коли if/else створює лише значення, трійковий виражає його в один рядок і часто легше читається:

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

Спробуйте

вправи#js.m1.l4.e1
Спроби: 0Завантаження…

Якщо оцінка від 0 до 10, поверніть «promosso», якщо оцінка >= 6, інакше «bocciato». Останній вираз повинен мати значення «promosso» з оцінкою = 7.

Завантаження редактора…
Показати підказку

Використовуйте потрійний `cond ? a : b` як останній вираз.

Рішення доступне після 3 спроб

Повторна вправа

вправи#js.m1.l4.e2
Спроби: 0Завантаження…

Класифікуйте температуру: «caldo», якщо >= 25, «tiepido», якщо >= 15, «freddo» в іншому випадку. З `t = 20` очікуваним результатом є 'tiepido'.

Завантаження редактора…
Показати підказку

Ви можете вкладати трійки: `a >= 25 ? 'caldo' : a >= 15 ? 'tiepido' : 'фреддо'`.

Рішення доступне після 3 спроб