Execute one of several groups of statements
switchswitch_expressioncasecase_expressionstatementscasecase_expressionstatements... otherwisestatementsend
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)
== 1
For objects that support the eq function,
. The output
of the overloaded case_expression ==
switch_expressioneq 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 matches switch_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.
A case_expression cannot
include relational operators such as < or > for
comparison against the switch_expression.
To test for inequality, use if, elseif, else statements.
The MATLAB switch statement
does not fall through like a C language switch statement.
If the first case statement is true, MATLAB does
not execute the other case 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 variable x, only cases
that define x 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 a
for or while loop, but does not
end execution of a switch statement. This behavior is
different than the behavior of break and
switch in C.