문 (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 특정 끝