switch, case, otherwise
Ejecutar uno de varios grupos de instrucciones
Sintaxis
switchswitch_expression
casecase_expression
statements
casecase_expression
statements
... otherwisestatements
end
Descripción
switch
evalúa una expresión y elige ejecutar uno de varios grupos de instrucciones. Cada elección es un caso. switch_expression
, case case_expression
, end
El bloque switch
prueba cada caso hasta que una de las expresiones de caso sea verdadera. Un caso es verdadero cuando:
Para los números,
.case_expression
==switch_expression
Para los vectores de caracteres,
strcmp(
.case_expression
,switch_expression
) == 1Para los objetos compatibles con la función
eq
,
. La salida de la funcióncase_expression
==switch_expression
eq
sobrecargada debe ser un valor lógico o convertible a un valor lógico.Para un arreglo de celdas
case_expression
, al menos uno de los elementos del arreglo de celdas coincide conswitch_expression
, como se definió anteriormente para números, vectores de caracteres y objetos.
Cuando una expresión de caso es verdadera, MATLAB® ejecuta las instrucciones correspondientes y sale del bloque switch
.
Una switch_expression
evaluada debe ser un escalar o un vector de caracteres. Una case_expression
evaluada debe ser un escalar, un vector de caracteres o un arreglo de celdas de escalares o vectores de caracteres.
El bloque otherwise
es opcional. MATLAB ejecuta las instrucciones solo cuando ningún caso es verdadero.
Ejemplos
Sugerencias
Una
case_expression
no puede incluir operadores relacionales como<
o>
para la comparación conswitch_expression
. Para comprobar la desigualdad, utilice las instruccionesif, elseif, else
.La instrucción
switch
de MATLAB no se pierde como una instrucciónswitch
en lenguaje C. Si la primera instruccióncase
estrue
, MATLAB no ejecuta las demás instruccionescase
. Por ejemplo:result = 52; switch(result) case 52 disp('result is 52') case {52, 78} disp('result is 52 or 78') end
result is 52
Defina todas las variables necesarias para el código en un caso particular dentro de dicho caso. Como MATLAB ejecuta solo un caso de cualquier instrucción
switch
, las variables definidas dentro de un caso no están disponibles para otros casos. Por ejemplo, si el área de trabajo actual no contiene una variablex
, solo los casos que definenx
pueden utilizarla:switch choice case 1 x = -pi:0.01:pi; case 2 % does not know anything about x end
La instrucción
break
de MATLAB termina la ejecución de un buclefor
owhile
, pero no finaliza la ejecución de una instrucciónswitch
. Este comportamiento es diferente al debreak
yswitch
en C.
Capacidades ampliadas
Historial de versiones
Introducido antes de R2006a