Оператор switch
Обеспечивает выполнение одного или нескольких операторов, если значение указанного выражения совпадает с подписью.
switch (expression) {
case label1 :
[statementlist1]
[break;]
[ ...
[ case labelN :
[statementlistN]
[break;] ] ]
[ default :
[statementlistDefault]]
}
Аргументы
выражение
Обязательный. Вычисляемое выражение.подпись1, ..., подписьN
Обязательный. Идентификатор, с которым сравнивается выражение. Если подпись === выражение, выполнение начинается со списка операторов сразу после двоеточия и продолжается либо до оператора break (он не является обязательным), либо до конца оператора switch.списокоператоров1, ..., списокоператоровN, списокоператоровПоУмолчанию
Необязательный. Один или несколько операторов для выполнения.
Заметки
Используйте предложение default, чтобы предоставить оператор для выполнения в том случае, если ни одна из подписей не совпадает с выражением. Предложение может находиться в любом месте блока кода switch.
Можно указать нуль или больше блоков подписей. Если ни одна подпись не совпадает со значением выражения, а предложение default отсутствует, операторы не выполняются.
Выполнение оператора switch происходит следующим образом.
Вычисление выражения и перебор подписей по порядку до тех пор, пока не будет найдено совпадение.
Если значение подписи равно выражению, выполняется сопутствующий список операторов.
Продолжение выполнения до обнаружения оператора break или до завершения оператора switch. Это означает выполнение нескольких блоков подписей, если не используется оператор break.
Если ни одна подпись не равна выражению, выполняется переход к предложению default. Если предложения default нет, выполняется переход к последнему шагу.
Продолжение выполнения с оператора, следующего за окончанием блока кода switch.
Пример
В следующем примере ASP.NET проверяется тип объекта. В этом случае следует использовать только один тип, но ясно видно, как работает эта функция с объектами других типов.
<%@ language="jscript" %>
<%
var d = new Number();
function MyObjectType(obj : Object) : String {
switch (obj.constructor){
case Date:
return "Object is a Date.";
break;
case Number:
return "Object is a Number.";
break;
case String:
return "Object is a String.";
break;
default:
return "Object is unknown.";
}
}
Response.Write(MyObjectType(d));
%>