edubun
Русский

Решения с помощью 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 odd

else 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 выбирает одно из двух значений
отступПробелы в начале строк внутри блока
  1. Что выведет этот код?
    const x = 5;
    if (x > 3) {
      console.log("big");
    } else {
      console.log("small");
    }
  2. Что выведет этот код?
    const x = 2;
    if (x > 3) {
      console.log("big");
    }
    console.log("end");
    • big, then end
    • Only end
    • Nothing
  3. Что выведет этот код?
    const t = 18;
    if (t >= 30) {
      console.log("hot");
    } else if (t >= 15) {
      console.log("mild");
    } else {
      console.log("cold");
    }
  4. Что выведет этот код?
    const s = 95;
    if (s >= 70) {
      console.log("C");
    } else if (s >= 90) {
      console.log("A");
    }
  5. Сколько блоков самое большее выполнится в цепочке if / else if / else?
  6. Что выведет этот код?
    const n = 10;
    console.log(n > 5 ? "yes" : "no");
  7. Что выведет этот код?
    const a = 4;
    const b = 9;
    if (a > 5 || b > 5) {
      console.log("one");
    } else {
      console.log("none");
    }
  8. Что выведет этот код?
    const a = 4;
    const b = 9;
    if (a > 5 && b > 5) {
      console.log("both");
    } else {
      console.log("not both");
    }
  9. Что не так с if (score = 100)?
    • Всё в порядке
    • Это сохраняет 100 вместо сравнения; нужно ===
    • Внутри не хватает точки с запятой
  10. Что выведет этот код?
    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