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

Условные обозначения: if, else, троичные.

Программа почти никогда не выполняет все свои инструкции по прямой. Это постоянно приходится решать: если цена ниже порога, применить скидка; если пользователь авторизован, показать панель; в противном случае покажите войти. Инструкции, используемые для принятия решений, называются условными.

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Загрузка…

Классифицируйте температуру: «кальдо», если >= 25, «тиэпидо», если >= 15, «фреддо» в противном случае. При `t = 20` ожидаемый результат — «tiepido».

Загрузка редактора…
Показать подсказку

Вы можете вкладывать тройные значения: `a >= 25 ? 'кальдо': а >= 15? 'tiepido': 'Фреддо'`.

Решение доступно после 3 попыток