switch, case, otherwise
여러 개의 명령문 그룹 중 하나 실행
구문
switchswitch_expressioncasecase_expressionstatementscasecase_expressionstatements... otherwisestatementsend
설명
switch 는 표현식을 실행하고 여러 명령문 그룹 중 하나를 실행하도록 선택합니다. 각각의 선택이 하나의 case가 됩니다. switch_expression, case case_expression, end
switch 블록은 case 표현식 중 하나가 true가 될 때까지 각 case를 테스트합니다. 다음에 해당하는 경우 case는 true가 됩니다.
숫자의 경우
.case_expression==switch_expression문자형 벡터와 string형의 경우
strcmp(. 문자형 벡터로 구성된 셀형 배열은 특수한 경우로, 셀형 배열의 요소 중 하나라도 일치하면case_expression,switch_expression) == 1case가 일치하는 것입니다.eq함수를 지원하는 객체의 경우입니다. 오버로드된case_expression==switch_expressioneq함수의 출력값은 논리값이거나 논리값으로 변환될 수 있어야 합니다.셀형 배열
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 이전에 개발됨
