Перейти к содержанию
Educora
Начальный13 мин5 / 27

Условия: if, else и switch

Научи программу принимать решения: `if`, `else if`, `else`, тернарный оператор и `switch`.

Проверь себя
В этом уроке ты узнаешь
  • Писать ветвящийся код с if, else if и else
  • Объединять условия с помощью && и ||
  • Понимать, когда использовать тернарный оператор и switch

Каждый день ты принимаешь десятки решений: если идёт дождь — берёшь зонт, если поздно — вызываешь такси, если на счёте мало денег — откладываешь покупку. Программы тоже принимают такие решения — с помощью условных операторов.

if: если условие истинно

После ключевого слова if в круглых скобках пишут условие, а в фигурных скобках { } — код, который выполнится, если условие истинно, то есть блок. Если условие ложно, блок пропускается, и программа идёт дальше.

JavaScript
const temperature = 28;

if (temperature > 25) {
  console.log('It is hot. Drink some water!');
}

console.log('Have a nice day');
▸ Ожидаемый результат
It is hot. Drink some water!
Have a nice day
Измени temperature на 15 и запусти снова: первое сообщение исчезнет.

else и else if

Блок else выполняется, когда условие ложно. Если вариантов больше двух, новые условия добавляют через else if. JavaScript проверяет условия сверху вниз и выполняет блок первого истинного — остальные уже не смотрит.

JavaScript
const score = 78;

if (score >= 90) {
  console.log('Excellent');
} else if (score >= 70) {
  console.log('Good');
} else if (score >= 50) {
  console.log('Satisfactory');
} else {
  console.log('Try again');
}
▸ Ожидаемый результат
Good

Составные условия

Чтобы объединить несколько условий, используют логические операторы: && (И) требует, чтобы были истинны оба условия, а || (ИЛИ) — хотя бы одно. Допустим, кинотеатр по выходным даёт скидку тем, кому меньше 18 лет:

JavaScript
const age = 15;
const isWeekend = true;

if (age < 18 && isWeekend) {
  console.log('Discount ticket: 3 AZN');
} else {
  console.log('Regular ticket: 5 AZN');
}

const day = 'Sunday';
if (day === 'Saturday' || day === 'Sunday') {
  console.log('No school today');
}
▸ Ожидаемый результат
Discount ticket: 3 AZN
No school today
Интерактив
Загрузка симуляции…
Оператор && работает как вентиль AND: выход истинен, только когда истинны оба входа. Переключись на OR и сравни с ||.

Тернарный оператор

Если нужно просто выбрать одно из двух значений и сохранить его, есть краткая форма: условие ? значение1 : значение2. Если условие истинно, результат — значение1, иначе — значение2. Это тернарный оператор: он состоит из трёх частей.

JavaScript
const hour = 20;
const greeting = hour < 12 ? 'Good morning' : 'Good evening';
console.log(greeting);

const items = 1;
console.log(`You have ${items} ${items === 1 ? 'item' : 'items'} in the basket`);
▸ Ожидаемый результат
Good evening
You have 1 item in the basket

switch: много вариантов

Когда одну переменную нужно сравнить со многими конкретными значениями, switch читается легче длинной цепочки else if. Каждый case проверяет одно значение (строгим сравнением ===), а break выходит из switch. Если ни один case не подошёл, выполняется блок default.

JavaScript
const day = 'Saturday';

switch (day) {
  case 'Saturday':
  case 'Sunday':
    console.log('Weekend!');
    break;
  case 'Friday':
    console.log('Almost weekend');
    break;
  default:
    console.log('Work day');
}
▸ Ожидаемый результат
Weekend!
Пустой case 'Saturday': использует код следующего case — один ответ на два значения.
JavaScript
const light = 'yellow';

switch (light) {
  case 'green':
    console.log('Go');
  case 'yellow':
    console.log('Get ready');
  case 'red':
    console.log('Stop');
}
▸ Ожидаемый результат
Get ready
Stop
КонструкцияКогда использовать
if / else if / elseлюбые условия: диапазоны (score >= 90), несколько переменных, сложные проверки
? :выбор одного из двух значений в одну строку
switchсравнение одной переменной со многими конкретными значениями
Задание

Выведи оценку для score: 90 и выше — A, 75 и выше — B, 60 и выше — C, иначе — F. Затем с помощью тернарного оператора выведи passed (если балл 60 или больше) или failed.

Задание · JavaScript
const score = 83;
// 1) print the grade: A, B, C or F
// 2) print passed or failed with the ternary operator
▸ Ожидаемый результат
B
passed

Главное

  • Блок if выполняется, только если условие истинно; else — в противном случае.
  • В цепочке else if побеждает первое истинное условие, поэтому самое строгое ставят наверх.
  • && требует истинности обоих условий, || — хотя бы одного.
  • Тернарный оператор условие ? a : b выбирает одно из двух значений.
  • switch сравнивает значения через ===; каждый case заканчивай break.

Проверь себя

Вопросов: 10. Каждый правильный ответ приносит XP.

1 / 10
При const x = 7; что выведет if (x > 10) { console.log('A'); } else { console.log('B'); }?