Get to know MDN better
This page was translated from English by the community. Learn more and join the MDN Web Docs community.
This feature is well established and works across many devices and browser versions. It’s been available across browsers since июль 2015 г..
Инструкция switch сравнивает выражение со случаями, перечисленными внутри неё, а затем выполняет соответствующие инструкции.
Выражение, значение которого сравнивается со всеми случаями.
case valueNСлучай, который проверяется на соответствие выражению (expression).
statementsNИнструкции, которые выполняются, если expression соответствуют случаю.
statements_defИнструкции, выполняемые если expression не соответствует ни одному случаю.
Если выражение соответствует какому-то случаю, то выполняются инструкции этого случая. Если несколько случаев соответствуют значению, только первый случай будет использован.
Сначала программа пытается найти подходящий случай, значение которого равно значению искомого выражения (используется строгое сравнение, ===) и затем выполняет инструкции, соответствующие случаю. Если подходящего случая нет, ищется случай по умолчанию (default), который не является обязательным. Если случая по умолчанию нет, выполнение продолжается на инструкции, следующей сразу после switch. По соглашению, случай default описывается последним, но это не является строгим правилом.
Опциональная инструкция break выполняет выход из блока switch. Она может располагаться в каждом из случаев, но не является обязательной. Если её нет, то выполняется следующая инструкция из блока switch.
В этом примере, если expr равно "Bananas", программа находит случай "Bananas" и выполняет соответствующие инструкции. При выполнении инструкции break, выполнение продолжится за пределами switch. Если бы break не было, то выполнились бы инструкции случая "Cherries".
Если вы не использовали инструкцию break, то будут выполнены инструкции следующего случая. И проверка на соответствие выражению не будет выполняться.
Этот метод использует тот факт, что после case нет прерывания и продолжится выполнение следующего case независимо от того, соответствует ли case предоставленному условию. Подробнее в примере "Что случится, если не использовать break?.
Это пример case с одной операцией, где четыре разных значения отрабатывают одинаково.
Это пример множественных операций внутри case, где в зависимости от предоставленного числа можно увидеть разный вывод. Здесь показывается, что операции отрабатывают в том порядке, в котором расположены case. При этом числовая последовательность может не соблюдаться. Также возможно примешать в case строки.
Вывод этого примера:
| foo is NaN or not 1, 2, 3, 4, 5, or 0 | Please pick a number from 0 to 5! |
| 0 | Output: So What Is Your Name? |
| 1 | Output: What Is Your Name? |
| 2 | Output: Your Name? |
| 3 | Output: Name? |
| 4 | Output: ? |
| 5 | Output: ! |
| ECMAScript® 2027 Language Specification # sec-switch-statement |
Enable JavaScript to view this browser compatibility table.
This page was last modified on 17 дек. 2024 г. by MDN contributors.
Your blueprint for a better internet.
Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998–2026 by individual mozilla.org contributors. Content available under a Creative Commons license.