다음을 통해 공유


문 (C) 전환

switch 및 경우 문 도움말 컨트롤 복잡 한 조건부 및 분기 작업입니다.switch 문의 하는 본문 내에서 제어를 전달 합니다.

구문

  • 선택 문을:
    **전환 ()**

  • 레이블이 문에:
    케이스 상수 식 ::

    기본값:

컨트롤의 문에 전달 경우상수 식 의 값과 일치 전환 ().   switch 문을 원하는 만큼 포함 될 수 있습니다 경우 인스턴스를 있지만 없는 두 case 상수의 같은 내 switch 문이 같은 값을 가질 수 있습니다.실행 본문은 선택한 문에서 시작 및 때까지 또는 본문의 끝까지 진행 되는 브레이크 문은 제어를 본문 이동 합니다.

사용 하 여 switch 문은 일반적으로 보이는 다음과 같은:

switch( )

{

   선언 

   .

   .

   .

   케이스 상수 식 :: 

      식에 해당 하는 경우 실행 되는 명령문의 

      이 상수 식의 값을 

      .

      .

      .

      중단 됩니다. 

   기본값:

      식과 일치 하지 않는 경우 실행 되는 명령문 

      모든 케이스 상수 식 

}

사용할 수는 브레이크 문 내에서 특별 한 경우의 처리를 종료 하는 switch 문 분기의 끝에 switch 문.하지 않고 브레이크, 프로그램을 계속 해 서 때까지 문을 실행 하는 다음 경우에는 브레이크 또는 문의 끝에 도달.일부 경우에는이 연속이 바람직합니다.

기본 문을 실행할 경우 경우상수 식 의 값과 같은지 전환 ().   경우는 기본 문을 생략 및 없음 케이스 입니다 일치, 어떤 문도에 switch 본문 실행.있을 수 최대 하나 기본 문의입니다.해당 기본 문의 끝; 오지 해야 본문에 어디 수 있는 switch 문.A 경우 또는 기본 레이블 안에 나타날 수만 switch 문.

종류를 switch경우상수 식 정수 계열 이어야 합니다.  값은 각각 경우상수 식 본문 내에서 고유 해야 합니다. 

케이스기본 의 레이블에 switch 문 본문이 됩니다 실행 문이 본문에 시작 되는 위치를 결정만 초기 테스트에서 중요 한.Switch 문에 중첩 될 수 있습니다.정적 변수를 실행 하기 전에 초기화 됩니다 switch 문입니다.

[!참고]

선언은 복합 문 형성의 머리에 나타날 수 있는 switch 본문, 하지만 선언에 포함 된 초기화가 수행 됩니다지 않습니다.switch 문을 초기화가 포함 된 줄을 무시 하는 본문 내의 실행 문에 직접 제어를 전달 합니다.

다음 예제는 설명 switch 문의 하십시오.

switch( c ) 
{
    case 'A':
        capa++;
    case 'a':
        lettera++;
    default :
        total++;
}

모든 3 개의 문을 switch 본문이 다음에 실행 하는 경우 c 같지 'A' 때문에 브레이크 문의 하기 전에 다음과 같은 경우 표시 되지 않습니다.실행 제어를 첫 번째 문으로 전송 됩니다 (capa++;)과 본문의 나머지 부분을 통해 순서 대로 계속 됩니다.If c is equal to 'a', lettera and total are incremented.만 total 증가 c 같지 않은 'A' 또는 'a'.

switch( i ) 
{
    case -1:
        n++;
        break;
    case 0 :
        z++;
        break;
    case 1 :
        p++;
        break;
}

이 예는 브레이크 문 뒤의 각 문에 switch 본문입니다.해당 브레이크 문을 강제로 본문에서 문이 실행 된 후에.경우 i – 1에는 동일 n 증가 합니다.해당 브레이크 문 다음 n++; 나머지 문을 사용 하지 않고 문을 본문을 전달 하는 컨트롤을 실행 합니다.마찬가지로, 경우 i 만 0 인 z 증가 합니다. 경우 i 1만 p 증가 합니다.최종 브레이크 문을 반드시 필요 하지 않습니다, 제어를 전달 하므로 본문 끝에 복합 문이 있지만 그 일관성을 위해 포함 되어 있습니다.

다중 단일 문으로 수행할 수 있습니다 경우 레이블, 다음 예제와 같이:

case 'a' :
case 'b' :
case 'c' :
case 'd' :
case 'e' :
case 'f' :  hexcvt(c);

이 예제에서는 경우 상수 식 사이 있는 문자에 해당 'a' 및 'f'의 hexcvt 함수가 호출 합니다.

Microsoft 전용

Microsoft C에서 case 값의 수를 제한 하지 않는 한 switch 문의입니다.사용 가능한 메모리에 의해서만 제한 됩니다.ANSI C 필요 최소한 257 case 레이블 수에 사용할 수 있는 switch 문.

Microsoft 확장을 사용 하는 Microsoft C의 기본이입니다./Za 컴파일러 옵션을 사용 하 여 이러한 확장을 사용 하지 않도록 설정 합니다.

Microsoft 특정 끝

참고 항목

참조

스위치 문 (c, + +)