Вход/Регистрация
JavaScript. Подробное руководство, 6-е издание
вернуться

Флэнаган Дэвид

Шрифт:

5.4.2. Инструкция else if

Инструкция

if/else
вычисляет значение выражения и выполняет тот или иной фрагмент программного кода, а зависимости от результата. Но что если требуется выполнить один из многих фрагментов? Возможный способ сделать это состоит в применении инструкции
else if
. Формально она не является самостоятельной инструкцией JavaScript; это лишь распространенный стиль программирования, заключающийся в применении повторяющихся инструкций
if/else
:

if (n == 1) {

// Выполнить блок 1

}

else if (n == 2) {

// Выполнить блок 2

}

else if (n == 3) {

// Выполнить блок З

}

else {

// Если ни одна из предыдущих инструкций else не была выполнена, выполнить блок 4

}

В этом фрагменте нет ничего особенного. Это просто последовательность инструкций

if
, где каждая инструкция
if
является частью конструкции
else
предыдущей инструкции. Стиль else if предпочтительнее и понятнее записи в синтаксически эквивалентной форме, полностью показывающей вложенность инструкций:

if (n == 1) {

// Выполнить блок 1

}

else {

if (n == 2) {

// Выполнить блок 2

}

else {

if (n == 3) {

// Выполнить блок З

}

else {

// Если ни одна из предыдущих инструкций else // не была выполнена, выполнить блок 4

}

}

}

5.4.3. Инструкция switch

Инструкция

if
создает ветвление в потоке выполнения программы, а многопозиционное ветвление можно реализовать посредством нескольких инструкций
else if
. Однако это не всегда наилучшее решение, особенно если все ветви зависят от значения одного и того же выражения. В этом случае расточительно повторно вычислять значение одного и того же выражения в нескольких инструкциях
if
.

Инструкция

switch
предназначена именно для таких ситуаций. За ключевым словом
switch
следует выражение в скобках и блок кода в фигурных скобках:

switch(выражение) {

инструкции

}

Однако полный синтаксис инструкции

switch
более сложен, чем показано здесь. Различные места в блоке помечены ключевым словом
case
, за которым следует выражение и символ двоеточия. Ключевое слово
case
напоминает инструкцию с меткой за исключением того, что оно связывает инструкцию с выражением, а не с именем. Когда выполняется инструкция
switch
, она вычисляет значение выражения, а затем ищет метку
case
, соответствующую этому значению (соответствие определяется с помощью оператора идентичности
===
). Если метка найдена, выполняется блок кода, начиная с первой инструкции, следующей за меткой
case
. Если метка
case
с соответствующим значением не найдена, выполнение начинается с первой инструкции, следующей за специальной меткой
default:
. Если метка
default:
отсутствует, блок инструкции
switch
пропускается целиком.

Работу инструкции

switch
сложно объяснить на словах, гораздо понятнее выглядит объяснение на примере. Следующая инструкция
switch
эквивалентна повторяющимся инструкциям
if/else
, показанным в предыдущем разделе:

switch(n) {

case 1: // Выполняется, если п === 1

// Выполнить блок 1.

break; // Здесь остановиться

case 2: // Выполняется, если п === 2

// Выполнить блок 2.

break; // Здесь остановиться

case 3: // Выполняется, если п === 3

// Выполнить блок 3.

break; // Здесь остановиться

default: // Если все остальное не подходит...

  • Читать дальше
  • 1
  • ...
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: