Перейти к основному содержимому

Конструкция switch case

@serverSerrverlesskiy

Конструкция switch служит для сравнения значения на равенство с различными вариантами.

При этом равенство подразумевается в смысле оператора строгое равенство ===, сравнивать с регулярным выражением или как-то еще switch не умеет. То есть значения должны быть одного типа, чтобы выполнялось равенство.

comparison

Если условие совпадает, то выполняется блок кода , связанный с соответствующим case. Если ни одно условие не подошло, то выполняется код , указанный в блоке default, если он есть. Для выхода из конструкции используется команда break. Если ее не указывать, автоматически выполнится блок кода в следующем case и т.д. Поэтому break используем в наших скриптах обязательно, чтобы не гонять интерпретатор по всем case тем самым снижая производительность скрипта.

Видео

Синтаксис

Syntax

Конструкция switch имеет один или более блоков case и необязательный блок default.

Выглядит она так:

switch (n) {
case 1:
// блок кода 1;
break
case 2:
// блок кода 2;
break
// .......
// другие варианты case
// .......
default:
// блок кода если не подошло ни одно условие;
}

n - это булеан boolean условие.

Примеры

Math

Рассмотрим простейший пример :

Интерактивный редактор
Результат
Loading...

Здесь оператор switch последовательно сравнит a со всеми вариантами из case. Сначала 3, затем – так как нет совпадения – 4. Совпадение найдено, будет выполнен этот вариант, со строки str = 'В точку!' и далее, до ближайшего break, который прервёт выполнение.

Wow

Рассмотрим такой пример :

Интерактивный редактор
Результат
Loading...

Здесь оператор switch последовательно сравнит a со всеми вариантами из case. Но здесь идет сравнение не чисел, а строк. Так можно сделать с любыми типами данных, главное чтобы сравнивались одинаковые типы данных.

Замена if

Также Switch используется чтобы заменить множественные if.

Например, можно заменить данный код :

Интерактивный редактор
Результат
Loading...

На этот :

Интерактивный редактор
Результат
Loading...

Результат будет тот же, но код станет более читабельным и удобным для работы.

React Native

Пример использования в React Native приложениях.

EnglishMoji!

Проблемы?

Problem

Пишите в Discord или телеграмм чат, а также подписывайтесь на наши новости

JavaScript Camp

Вопросы:

Question

Можно ли при помощи switch сравнить что-то с регулярными выражениями?

  1. true
  2. false

Какой оператор сравнения использует switch?

  1. =
  2. ===
  3. ==

Какое ключевое слово останавливает процесс сравнения в switch?

  1. break
  2. stop
  3. default

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

EnglishMoji!

Ссылки:

  1. MDN web docs
  2. Learn JavaScript
  3. Справочник JavaScript

Contributors ✨

Thanks goes to these wonderful people (emoji key):


Philipp Dvinyaninov


Dmitriy Vasilev

💵

Resoner2005

🐛 🎨 🖋

Navernoss

🖋 🐛 🎨