switch 문

지정한 식의 값이 레이블과 일치하면 하나 이상의 문을 실행하도록 합니다.

switch (expression) {
   case label1 :
      [statementlist1]
      [break;]
 [ ...
 [ case labelN :
      [statementlistN]
      [break;] ] ]
 [ default :
      [statementlistDefault]]
} 

인수

  • expression
    필수적 요소로서, 계산할 식입니다.

  • label1, ..., labelN
    필수적 요소로서, expression과 일치하는 식별자입니다. label === expression이면 콜론 바로 뒤에 있는 문 목록에서부터 실행하여 선택적 요소인 break 문이나 switch 문의 끝에 올 때까지 계속 실행합니다.

  • statementlist1, ..., statementlistN, statementlistDefault
    선택적 요소로서, 실행할 하나 이상의 문입니다.

설명

default 절을 사용하면 expression과 일치하는 레이블 값이 없을 경우 실행할 문을 제공할 수 있습니다. 이 절은 switch 코드 블록 내의 어디에나 올 수 있습니다.

label 블록은 0개 이상 지정할 수 있습니다. expression 값과 일치하는 label도 없고 default도 제공되지 않으면 어떤 문도 실행되지 않습니다.

switch 문은 다음과 같이 실행됩니다.

  • 일치하는 것을 찾을 때까지 expression을 계산한 후 label을 살펴봅니다.

  • label 값이 expression과 같으면 동반하고 있는 문 목록을 실행합니다.

    break 문을 만나거나 switch 문이 끝날 때까지 실행을 계속합니다. 따라서 break 문을 사용하지 않으면 여러 label 블록이 실행됩니다.

  • expression과 일치하는 label이 없으면 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));
%>

요구 사항

버전 3

참고 항목

참조

break 문

if...else 문