Решения с помощью if и else
Оператор if выполняет блок кода, только когда его условие true. С else if JavaScript проверяет условия сверху и останавливается на первом истинном.
Код, который выполняется не всегда
До сих пор каждая программа выполняла каждую строку каждый раз. Полезные программы ведут себя по-разному в разных ситуациях: игра показывает «Ты победил», только когда очков достаточно, а магазин добавляет плату за доставку, только когда заказ маленький. Оператор if позволяет JavaScript выбирать.
const temperature = 31;
if (temperature >= 30) {
console.log("Hot day. Drink water.");
}
console.log("Done");Условие пишут в скобках после слова if. Это любое выражение, которое даёт логическое значение, обычно сравнение из прошлого урока. Код, который нужно выполнить, если оно true, пишут в фигурных скобках, они образуют блок. Если условие false, JavaScript пропускает весь блок и продолжает после закрывающей скобки. Выше печатаются обе строки. Поменяй temperature на 20, и напечатается только "Done". Строки внутри блока сдвинуты на два пробела. JavaScript этот отступ не нужен, но он сразу показывает, какие строки относятся к if, и любой опытный программист будет его ожидать.
else: другой путь
Часто нужно сделать одно, когда условие true, и другое, когда оно false. Добавь блок else. Выполняется ровно один из двух блоков: никогда оба и никогда ни одного.
const n = 7;
if (n % 2 === 0) {
console.log(n + " is even");
} else {
console.log(n + " is odd");
}
// выведет: 7 is oddelse if: больше двух вариантов
Для нескольких вариантов соединяй условия цепочкой через else if. JavaScript проверяет их сверху. Как только одно оказывается true, он выполняет этот блок и пропускает все остальные, даже если следующие условия тоже были бы true. Последний else ловит всё, что не подошло ни под одно условие выше.
const score = 72;
if (score >= 90) {
console.log("A");
} else if (score >= 80) {
console.log("B");
} else if (score >= 70) {
console.log("C");
} else {
console.log("F");
}
// выведет: CПорядок условий важен. При score 95 первая проверка уже true, и печатается A. Если бы проверки шли в обратном порядке, начиная с score >= 70, то 95 остановилось бы на первой проверке и напечаталось бы C. Когда диапазоны так перекрываются, ставь самое узкое условие первым. Прослеживать код вручную полезно: возьми значение, читай сверху и проговаривай вслух, в какую ветку оно попадёт.
Вложенность и объединение
Внутри блока может быть другой оператор if, это называется вложенностью. Глубокой вложенности часто можно избежать, объединив условия через && и || из прошлого урока. Эти два куска кода делают одно и то же, но второй легче читать:
if (age >= 8) {
if (height >= 120) {
console.log("You can ride");
}
}
if (age >= 8 && height >= 120) {
console.log("You can ride");
}Условный оператор
Когда нужно просто выбрать одно из двух значений, есть короткая форма, условный (тернарный) оператор: condition ? valueIfTrue : valueIfFalse. Например, const label = n % 2 === 0 ? "even" : "odd";. Используй его для коротких выборов значения. Если выполняется несколько операторов, понятнее обычные if и else.
Частая ошибка: один знак равенства в условии, if (score = 100). Так в score сохраняется 100 вместо сравнения, и блок выполняется каждый раз. Всегда сравнивай через ===.
if (условие) { ... } else if (другое условие) { ... } else { ... }
| условие | Логическое выражение в if ( ) |
| блок | Операторы, собранные в { } |
| else | Выполняется, когда условие if равно false |
| else if | Ещё одно условие, проверяется, только если все условия выше были false |
| ветка | Один из возможных путей через оператор if |
| вложенность | if внутри другого if |
| тернарный оператор | cond ? a : b выбирает одно из двух значений |
| отступ | Пробелы в начале строк внутри блока |
- Что выведет этот код?
const x = 5; if (x > 3) { console.log("big"); } else { console.log("small"); } - Что выведет этот код?
const x = 2; if (x > 3) { console.log("big"); } console.log("end");- big, then end
- Only end
- Nothing
- Что выведет этот код?
const t = 18; if (t >= 30) { console.log("hot"); } else if (t >= 15) { console.log("mild"); } else { console.log("cold"); } - Что выведет этот код?
const s = 95; if (s >= 70) { console.log("C"); } else if (s >= 90) { console.log("A"); } - Сколько блоков самое большее выполнится в цепочке if / else if / else?
- Что выведет этот код?
const n = 10; console.log(n > 5 ? "yes" : "no"); - Что выведет этот код?
const a = 4; const b = 9; if (a > 5 || b > 5) { console.log("one"); } else { console.log("none"); } - Что выведет этот код?
const a = 4; const b = 9; if (a > 5 && b > 5) { console.log("both"); } else { console.log("not both"); } - Что не так с
if (score = 100)?- Всё в порядке
- Это сохраняет 100 вместо сравнения; нужно ===
- Внутри не хватает точки с запятой
- Что выведет этот код?
let msg = "start"; const n = 0; if (n) { msg = "nonzero"; } console.log(msg);
- if (условие) { ... } выполняет блок, только когда условие true.
- else выполняется, когда оно false; выполняется ровно один из двух блоков.
- Цепочка else if проверяется сверху; побеждает первое истинное условие.
- Когда диапазоны перекрываются, ставь самое узкое условие первым.
- Сравнивай через ===, никогда не одиночным =.
Источники курса (2)
- MDN Web Docs, JavaScript Guide (developer.mozilla.org/en-US/docs/Web/JavaScript/Guide, chapters Introduction, Grammar and types, Control flow, Loops and iteration, Functions, Expressions and operators, Numbers and strings, Indexed collections, Working with objects; checked 2026-10-17)
- Ecma International, ECMA-262 ECMAScript 2026 Language Specification, 17th edition, June 2026 (tc39.es/ecma262 and ecma-international.org/publications-and-standards/standards/ecma-262, checked 2026-10-17)
Проверено: 2026-10-17