switch, case, otherwise
Execute one of several groups of statements
Syntax
switchswitch_expression
casecase_expression
statements
casecase_expression
statements
... otherwisestatements
end
Description
switch
evaluates
an expression and chooses to execute one of several groups of statements.
Each choice is a case. switch_expression
,
case case_expression
, end
The switch
block tests each case until one
of the case expressions is true. A case is true when:
For numbers,
.case_expression
==switch_expression
For character vectors,
strcmp(
.case_expression
,switch_expression
) == 1For objects that support the
eq
function,
. The output of the overloadedcase_expression
==switch_expression
eq
function must be either a logical value or convertible to a logical value.For a cell array
case_expression
, at least one of the elements of the cell array matchesswitch_expression
, as defined above for numbers, character vectors, and objects.
When a case expression is true, MATLAB® executes the corresponding
statements and exits the switch
block.
An evaluated switch_expression
must
be a scalar or character vector. An evaluated case_expression
must
be a scalar, a character vector, or a cell array of scalars or character
vectors.
The otherwise
block is optional. MATLAB executes
the statements only when no case is true.
Examples
Tips
A
case_expression
cannot include relational operators such as<
or>
for comparison against theswitch_expression
. To test for inequality, useif, elseif, else
statements.The MATLAB
switch
statement does not fall through like a C languageswitch
statement. If the firstcase
statement istrue
, MATLAB does not execute the othercase
statements. For example:result = 52; switch(result) case 52 disp('result is 52') case {52, 78} disp('result is 52 or 78') end
result is 52
Define all variables necessary for code in a particular case within that case. Since MATLAB executes only one case of any
switch
statement, variables defined within one case are not available for other cases. For example, if your current workspace does not contain a variablex
, only cases that definex
can use it:switch choice case 1 x = -pi:0.01:pi; case 2 % does not know anything about x end
The MATLAB
break
statement ends execution of afor
orwhile
loop, but does not end execution of aswitch
statement. This behavior is different than the behavior ofbreak
andswitch
in C.
Extended Capabilities
Version History
Introduced before R2006a