Elementor Header #8

56. Конструкция Switch

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

Синтаксис конструкции switch

Синтаксис конструкции switch выглядит следующим образом:

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

				
			
  • выражение — это выражение, которое сравнивается с каждым значением case.
  • case значение — это значение, с которым сравнивается выражение. Если оно совпадает, выполняется соответствующий блок кода.
  • break — оператор, который завершает выполнение блока switch и предотвращает переход к следующему случаю. Без break выполнение продолжится в последующих блоках (так называемое «проваливание»).
  • default — необязательный блок кода, который выполняется, если ни одно из значений case не совпадает с выражением.

Пример использования конструкции switch

Рассмотрим пример, в котором мы определяем день недели по числовому значению:

				
					let day = 3;
let dayName;

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

console.log(dayName); // "Среда"

				
			

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

  • Если day равно 3, переменной dayName присваивается значение «Среда».
  • Если day не совпадает ни с одним из значений case, выполняется блок default.

Как работает конструкция switch

  1. Оценка выражения: switch оценивает выражение и сравнивает его результат с значениями case.
  2. Поиск совпадения: Если найдено совпадение, выполняется соответствующий блок кода.
  3. Завершение: Если используется break, выполнение прерывается. Без break выполнение продолжается в следующих блоках case (проваливание).
  4. Блок default: Если ни одно значение case не совпадает, выполняется блок default, если он присутствует.

Распространённые ошибки

Отсутствие break:

Ошибка: Если пропустить break, выполнение продолжится в следующий блок case, что может привести к неожиданным результатам.

				
					let num = 2;
switch (num) {
    case 1:
        console.log("Один");
    case 2:
        console.log("Два");
    case 3:
        console.log("Три");
    default:
        console.log("Неизвестное число");
}

				
			

Исправление: Добавьте break после каждого блока case, если не требуется продолжение выполнения.

				
					let num = 2;
switch (num) {
    case 1:
        console.log("Один");
        break;
    case 2:
        console.log("Два");
        break;
    case 3:
        console.log("Три");
        break;
    default:
        console.log("Неизвестное число");
}

				
			

Отсутствие блока default:

  • Ошибка: Отсутствие блока default может привести к тому, что код не обработает случаи, когда значение не совпадает ни с одним из case.

  • Исправление: Добавьте блок default, чтобы обработать некорректные или неожиданные значения.

				
					let day = 8; // Некорректный день
switch (day) {
    case 1:
        console.log("Понедельник");
        break;
    case 2:
        console.log("Вторник");
        break;
    // Другие случаи
    default:
        console.log("Некорректный день");
}

				
			

Заключение

Конструкция switch предоставляет удобный и организованный способ обработки различных значений. Она может значительно улучшить читаемость кода по сравнению с множественными if-else. Однако важно помнить о необходимости использования break для предотвращения нежелательного продолжения выполнения и добавлении блока default для обработки всех возможных случаев.

Тестовое задание

  • Напишите программу, которая принимает числовое значение от 1 до 12 и выводит название месяца, соответствующего этому числу (1 — Январь, 2 — Февраль и так далее). Используйте конструкцию switch.

  • Исправьте следующий код:

				
					let color = "green";
switch (color) {
    case "red":
        console.log("Красный");
        break;
    case "green":
        console.log("Зеленый");
    case "blue":
        console.log("Синий");
        break;
    default:
        console.log("Цвет не распознан");
}

				
			

Какой результат будет выведен при значении color равном «green»?

  • Как исправить код, чтобы результат был корректным?
  • «Младенец», если возраст от 0 до 2 лет.
  • «Ребёнок», если возраст от 3 до 12 лет.
  • «Подросток», если возраст от 13 до 17 лет.
  • «Взрослый», если возраст от 18 до 64 лет.
  • «Пенсионер», если возраст 65 лет и старше.
  • Напишите программу, которая принимает возраст пользователя и выводит:

Используйте конструкцию switch для решения задачи.

Решите все задания, чтобы практиковаться в использовании конструкции switch и избегать распространённых ошибок.

logo