switch, case, otherwise
여러 개의 명령문 그룹 중 하나 실행
구문
switchswitch_expression
casecase_expression
statements
casecase_expression
statements
... otherwisestatements
end
설명
switch
는 표현식을 실행하고 여러 명령문 그룹 중 하나를 실행하도록 선택합니다. 각각의 선택이 하나의 case가 됩니다. switch_expression
, case case_expression
, end
switch
블록은 case 표현식 중 하나가 true가 될 때까지 각 case를 테스트합니다. 다음에 해당하는 경우 case는 true가 됩니다.
숫자의 경우
.case_expression
==switch_expression
문자형 벡터의 경우
strcmp(
.case_expression
,switch_expression
) == 1eq
함수를 지원하는 객체의 경우
입니다. 오버로드된case_expression
==switch_expression
eq
함수의 출력값은 논리값이거나 논리값으로 변환될 수 있어야 합니다.셀형 배열
case_expression
의 경우 셀형 배열의 요소 중 하나 이상이 숫자, 문자형 벡터, 객체에 대해 위에 정의된 대로switch_expression
과 일치할 때.
case 표현식이 true이면 MATLAB®은 해당하는 명령문을 실행하고 switch
블록을 종료합니다.
switch_expression
은 스칼라나 문자형 벡터로 평가될 수 있어야 합니다. case_expression
은 스칼라, 문자형 벡터, 또는 스칼라나 문자형 벡터로 구성된 셀형 배열로 평가될 수 있어야 합니다.
otherwise
블록은 선택 사항입니다. MATLAB은 어떤 case도 true가 아닌 경우에만 이 명령문을 실행합니다.
예제
팁
case_expression
은switch_expression
과의 비교에<
또는>
같은 관계 연산자를 포함할 수 없습니다. 부등식 테스트를 수행하려면if, elseif, else
문을 사용하십시오.MATLAB
switch
문은 C 언어의switch
문처럼 다음 case로 넘어가지(fall through) 않습니다. 첫 번째case
문이true
인 경우, MATLAB은 다른case
문을 실행하지 않습니다. 예를 들면 다음과 같습니다.result = 52; switch(result) case 52 disp('result is 52') case {52, 78} disp('result is 52 or 78') end
result is 52
특정 case의 코드에 필요한 모든 변수를 해당 case 내에 정의하십시오. MATLAB은
switch
문에 대해 case를 하나만 실행하므로, 하나의 case 내에 정의된 변수는 다른 case에 사용할 수 없습니다. 예를 들어, 현재 작업 공간에 변수x
가 포함되지 않은 경우, 다음과 같이x
를 정의하는 case만 이 변수를 사용할 수 있습니다.switch choice case 1 x = -pi:0.01:pi; case 2 % does not know anything about x end
MATLAB
break
문은for
또는while
루프의 실행을 종료하지만switch
문의 실행은 종료하지 않습니다. 이 동작은 C의break
및switch
의 동작과 다릅니다.
확장 기능
버전 내역
R2006a 이전에 개발됨