--- title: Selecting from Many Options with Switch Statements localeTitle: Выбор из многих параметров с помощью операторов Switch --- ## Выбор из многих параметров с помощью операторов Switch _Если у вас есть много вариантов на выбор, используйте оператор `switch` . Оператор `switch` проверяет значение и может иметь множество операторов `case` которые определяют различные возможные значения. Заявления выполняются из первого совпадающего значения `case` до тех пор, пока не будет обнаружен `break` ._ _Вот пример псевдокода:_ ```js switch(num) { case value1: statement1; break; case value2: statement2; break; ... case valueN: statementN; break; } ``` ### Немного больше объяснений Оператор switch сначала оценивает свое выражение. Затем он ищет предложение первого `case` , выражение которого оценивается с тем же значением, что и результат входного выражения (используя [строгое сравнение](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Comparison_Operators) , ( `===` ) и передает управление этому предложению, выполняя связанные операторы (если несколько совпадений совпадают предоставленное значение, выбирается первый случай, который соответствует, даже если случаи не равны друг другу.) Если `case` не найден, программа ищет необязательное предложение по `default` , и если оно найдено, передает управление этому предложению, выполняя связанные операторы. Если предложение по `default` не найдено, программа продолжает выполнение в инструкции после окончания `switch` . По соглашению, предложение по `default` является последним предложением, но это не обязательно так. Необязательный оператор `break` связанный с каждым ярлыком case, гарантирует, что программа выйдет из коммутатора после выполнения согласованного оператора и продолжит выполнение в операторе следующего коммутатора. Если `break` пропущен, программа продолжает выполнение в следующем выражении в инструкции `switch` . [1](#cite1) ### Проблема Объяснение: _Напишите оператор switch, который проверяет `val` и устанавливает `answer` для следующих условий:_ * `1` - «альфа», * `2` - «бета», * `3` - «гамма», * `4` - «дельта». ## Подсказка 1 Помните, что значения `case` проверяются со строгим равенством ( `===` ). > Попробуйте решить проблему сейчас! ## Подсказка 2 Не видите _«следующие условия»_ как упорядоченный список, как он выглядит в оригинальной демонстрации freeCodeCamp, но как значения и инструкции, как показано здесь > Попробуйте решить проблему сейчас! ## Осторожно, спойлеры! ### Вы полностью уверены, что хотите посмотреть? ... ## Решение базового кода ```js function caseInSwitch(val) { var answer = ""; // Only change code below this line switch(val) { case 1: return "alpha"; break; case 2: return "beta"; break; case 3: return "gamma"; break; case 4: return "delta"; break; } // Only change code above this line return answer; } // Change this value to test caseInSwitch(1); ``` ### Обозначение кода Обычно игнорируется, что значения `case` проверяются со строгим равенством с любой потребностью другого выражения, например: `case === value` ## Альтернативное решение для кода: ```javascript function caseInSwitch(val) { var answer = ""; // Only change code below this line switch (val){ case 1: answer="alpha"; break; case 2: answer="beta"; break; case 3: answer="gamma"; break; case 4: answer="delta"; break; } // Only change code above this line return answer; } // Change this value to test caseInSwitch(1); ``` · Запустить код в [repl.it.](https://repl.it/@AdrianSkar/Basic-JS-Switch-statements) ### Обозначение кода Поскольку у вас уже есть переменная, определенная в начале функции с именем `answer` и она определена как последний оператор return, вы можете назначить ему новые значения для каждого случая и вернет ожидаемый ответ в зависимости от значения, которое вы передаете функции. ### источники 1 . [Описание «switch» - _ссылка MDN JavaScript_](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/switch#Description) .