11. Операторы условий и многозначного выбора

Условия

В JavaScript конструкция if...else используется для выполнения кода в зависимости от условий. Она позволяет проверять условие и выполнять определённый блок кода, если это условие истинно (true). Если условие ложно (false), можно выполнить альтернативный блок кода.

Синтаксис if...else

if (условие) {
    // Этот блок выполнится, если условие истинно
} else {
    // Этот блок выполнится, если условие ложно
}

Пример использования

let число = 10;

if (число > 5) {
    console.log("Число больше 5");
} else {
    console.log("Число не больше 5");
}

В этом примере:

  • Если переменная число больше 5, выполнится первый блок кода, и на экран выведется сообщение "Число больше 5".
  • Если число меньше или равно 5, выполнится блок else, и на экран выведется "Число не больше 5".

if...else if...else

Также можно использовать несколько условий с помощью else if:

let число = 7;

if (число > 10) {
    console.log("Число больше 10");
} else if (число > 5) {
    console.log("Число больше 5, но меньше или равно 10");
} else {
    console.log("Число меньше или равно 5");
}

Здесь:

  • Если число больше 10, выполнится первый блок.
  • Если число больше 5, но меньше или равно 10, выполнится второй блок else if.
  • Если ни одно из условий не выполнено, выполнится блок else.

Таким образом, if...else помогает контролировать выполнение кода на основе условий, что делает его мощным инструментом в программировании.


Многозначный выбор

Конструкция switch...case в JavaScript используется, когда нужно выполнить разные блоки кода в зависимости от значения переменной или выражения. Это особенно удобно, когда у нас много значений, которые нужно проверить, поскольку switch...case может быть проще и более наглядным, чем серия if...else if.

Синтаксис switch...case

switch (выражение) {
    case значение1:
        // Код, выполняемый, если выражение === значение1
        break;
    case значение2:
        // Код, выполняемый, если выражение === значение2
        break;
    // можно добавлять столько case, сколько нужно
    default:
        // Код, выполняемый, если ни один case не подошёл
}

Обратите внимание: каждая секция case обычно заканчивается break, чтобы выйти из switch, иначе код продолжит выполняться для всех последующих случаев. Это называется "проваливание" (fall-through) и иногда используется специально, но обычно break помогает избежать этого.

Пример использования switch...case

let деньНедели = 3;

switch (деньНедели) {
    case 1:
        console.log("Понедельник");
        break;
    case 2:
        console.log("Вторник");
        break;
    case 3:
        console.log("Среда");
        break;
    case 4:
        console.log("Четверг");
        break;
    case 5:
        console.log("Пятница");
        break;
    case 6:
        console.log("Суббота");
        break;
    case 7:
        console.log("Воскресенье");
        break;
    default:
        console.log("Некорректный день недели");
}

В этом примере:

  • Переменная деньНедели равна 3, поэтому выполнится блок case 3, и выведется "Среда".
  • Если деньНедели будет другим числом, которое не соответствует ни одному case, выполнится блок default, выводя сообщение "Некорректный день недели".

Пример с проваливанием (fall-through)

Иногда проваливание может быть полезным, например, когда несколько значений должны обрабатываться одинаково:

let оценка = "3";

switch (оценка) {
    case "5":
        console.log("Отлично!");
        break;
    case "4":
    case "3":
        console.log("Хорошо");
        break;
    case "2":
        console.log("Удовлетворительно");
        break;
    default:
        console.log("Попробуйте снова");
}

Здесь:

  • Если оценка равна "3" или "4", выведется "Хорошо".
  • Если оценка — любое другое значение, не соответствующее case, выполнится блок default с сообщением "Попробуйте снова".

Краткий итог

switch...case — удобный способ для обработки множества условий, когда проверка идёт на совпадение конкретных значений.