Оператор switch в JS

В этой статье вы на примерах познакомитесь с оператором выбора switch в JavaScript.

Оператор switch используется для принятия решений. Он оценивает выражение и выполняет нужный блок кода, соответсвующий результату выражения. 

Синтаксис

switch(переменная/выражение) {
    case значение1:  
        // тело case 1
        break;

    case значение2:  
        // тело case 2
        break;

    case значениеN:
        // тело case N
        break;

    default:
        // тело default
}

Как это работает

Оператор switch оценивает значение переменной/выражения.

  • Если результат выражения равен значению1, выполняется тело case 1.
  • Если результат выражения равен значению2, выполняется тело case 2.
  • Если результат выражения не подходит ни под одно значение N, выполняется тело default

Примечание 1. Оператор break завершает работу оператора switch. Но break можно не использовать, тогда после выполнения блока, соответсвующего текущему значению выражения, выполнятся все остальные блоки.

Примечание 2. Блок default тоже необязательный. Его можно не использовать.  

Блок-схема

Пример 1. Используем оператор switch

let a = 12;

switch (a) {
    case 11:
        a = "одиннадцать";
        break;
    case 12:
        a = "двенадцать";
        break;
    default:
        a "неизвестно";
        break;
}
console.log(`Значение a — ${a}.`);

Вывод

Значение a — двенадцать.

Оператор switch оценивает значение переменной a.

  • Сначала оператор switch проверяет, не равно ли значение a значению1 — 11. Поскольку a ≠ 11, оператор switch переходит к следующему case. 
  • Оператор switch проверяет, не равно ли значение a значению2 — 12. Поскольку a = 12, мы заходим в блок case 12
  • Оператор break завершает работу switch, и поток управления возвращается из оператора switch.

Пример 2. Проверяем тип с помощью оператора switch

let a = 11;

switch (a) {
    case "11":
        a = 11;
        break;
    case 11:
        a = "одиннадцать";
        break;
    case 12:
        a = "двенадцать";
        break;

    default:
        a = "неизвестно";
        break;
}
console.log(`Значение a — ${a}.`);

Вывод

Значение a — одиннадцать.

Сначала оператор оценивает значение переменной a.

  • В JavaScript оператор switch строго проверяет значение. Поэтому значение a = 11 не совпадает со значением1 — "11"
  • Затем оператор switch переходит ко второму случаю. Здесь результат выражения a = 11 совпадает со значением2 — 11
  • Оператор break завершает работу switch, и поток управления возвращает из оператора switch.

Примечание. В JavaScript оператор switch строго проверяет случаи с результатом выражения. Это значит, что значение в case и результат выражения должны быть одного типа.  Обратите внимание, что в приведенном выше примере 11 не совпадает с "11".

Пример 3. Простой калькулятор с помощью оператора switch

let result;

// принимаем от пользователя оператор
const operator = prompt("Введите  оператор: (+, -, * или / ): ");

// принимаем от пользователя операнды
const number1 = parseFloat(prompt("Введите первое число: "));
const number2 = parseFloat(prompt("Введите второе число: "));

switch(operator) {
    case "+":
        result = number1 + number2;
        console.log(`${number1} + ${number2} = ${result}`);
        break;
    case "-":
        result = number1 - number2;
        console.log(`${number1} - ${number2} = ${result}`);
        break;
    case "*":
        result = number1 * number2;
        console.log(`${number1} * ${number2} = ${result}`);
        break;
    case "/":
        result = number1 / number2;
        console.log(`${number1} / ${number2} = ${result}`);
        break;

    default:
        console.log('Invalid operator');
        break;
}

Вывод

Введите оператор: +
Введите первое число: 4
Введите второе число: 5
4 + 5 = 9

В приведенной выше программе пользователю предлагается ввести оператор +, -, * или /, а также два операнда. Затем с помощью оператора switch выполняются соответсвующие оператору вычисления. 

Группировка case в операторе switch

В операторе switch случаи можно сгруппировать. 

Пример 4. Используем switch с несколькими case

let fruit = "яблоко";
switch(fruit) {
    case "яблоко":
    case "манго":
    case "ананас":
        console.log("${fruit} — это фрукт.");
        break;
    default:
        console.log("${fruit} — это не фрукт.");
        break;
}

Вывод

яблоко — это фрукт.

В приведенной выше программе несколько случаев сгруппированы. Ко всем сугрппированным case относится один и тот же блок кода.

То есть если fruit равно "яблоко", "манго" или "ананас", на экран в любом случае выведется сообщение о том, что это фрукт.

codechick

СodeСhick.io - простой и эффективный способ изучения программирования.

2024 ©