Инструкция switch

Инструкция if создает ветвление в потоке исполнения программы. Сложное ветвление можно реализовать посредством нескольких инструкций if, как показано в предыдущем примере.

Однако это не всегда наилучшее решение, особенно если все ветви зависят от значения одной переменной. Инструкция switch работает именно в такой ситуации и делает это более эффективно, чем повторяющиеся инструкции if. За инструкцией switch следует выражение и блок кода – почти так же, как в инструкции if.

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

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

switch(n) {

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

// Исполняем блок кода 1.

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

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

// Исполняем блок кода 2.

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

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

// Исполняем блок кода 3.

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

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

// Исполняем блок кода 4.

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

}

Обратите внимание на ключевое слово break в конце каждого блока case. Инструкция break приводит к передаче управления в конец инструкции switch или цикла. Конструкции case в инструкции switch задают только начальную точку исполняемого кода, но не задают никаких конечных точек. В случае отсутствия инструкций break инструкция switch начинает исполнение блока кода с метки case, соответствующей значению выражения, и продолжает исполнение до тех пор, пока не дойдет до конца блока, выполняя по очереди все оставшиеся ветви. В редких случаях это полезно для написания кода, который переходит от одной метки case к следующей, но в 99 % случаев следует аккуратно завершать каждый блок case инструкцией break.

switch (xlang) {

case "английский" : window. open ("engl .htm") ;

Break;

case "французский": window. open ("french. htm") ;

Break;

case "немецкий" : window. open ("german. htm") ;

Break;

default: alert("y нас нет документа на таком языке")

}

При использовании switch внутри функции можно помещать вместо break инструкцию return. Обе эти инструкции служат для завершения работы инструкции switch и предотвращения перехода к следующей метке case.

Ниже приводится более реальный пример использования инструкции switch; он преобразует значение в строку способом, зависящим от типа значения:

function convert(x) {

switch(typeof x) {

case 'number': // Преобразуем число в шестнадцатеричное целое








Дата добавления: 2015-08-01; просмотров: 800;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.007 сек.