Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

switch, case, otherwise

Ejecutar uno de varios grupos de instrucciones

Sintaxis

switch switch_expression
   case case_expression
      statements
   case case_expression
      statements
    ...
   otherwise
      statements
end

Descripción

ejemplo

switch switch_expression, case case_expression, end evalúa una expresión y elige ejecutar uno de varios grupos de instrucciones. Cada elección es un caso.

El bloque switch prueba cada caso hasta que una de las expresiones Case sea true. Un caso es verdadero cuando:

  • Para los números, case_expression == switch_expression.

  • Para los vectores de caracteres, strcmp(case_expression,switch_expression) == 1.

  • Para los objetos que admiten la función eq , case_expression == switch_expression.

  • Para una matriz de celdas case_expression, al menos uno de los elementos de la matriz de celdas coincide con switch_expression, como se define anteriormente para los números, los vectores de caracteres y los objetos.

Cuando una expresión de caso es true, MATLAB® ejecuta las instrucciones correspondientes y sale del bloque switch .

Un switch_expressionevaluado debe ser un vector escalar o de carácter. Un case_expressionevaluado debe ser un escalar, un vector de carácter o una matriz de celdas de escalares o vectores de caracteres.

El bloque otherwise es opcional. MATLAB ejecuta las instrucciones sólo cuando ningún caso es verdadero.

Ejemplos

contraer todo

Mostrar texto diferente de forma condicional, dependiendo de un valor introducido en el símbolo del sistema.

n = input('Enter a number: ');

switch n
    case -1
        disp('negative one')
    case 0
        disp('zero')
    case 1
        disp('positive one')
    otherwise
        disp('other value')
end

En el símbolo del sistema, ingrese el número 1.

positive one

Repita el código e ingrese el número 3.

other value

Determine qué tipo de trama crear basándose en el valor de plottype. Si plottype es 'pie' o 'pie3', cree un gráfico de pie 3D. Utilice una matriz de celdas para contener ambos valores.

x = [12 64 24];
plottype = 'pie3';

switch plottype
    case 'bar' 
        bar(x)
        title('Bar Graph')
    case {'pie','pie3'}
        pie3(x)
        title('Pie Chart')
    otherwise
        warning('Unexpected plot type. No plot created.')
end

Sugerencias

  • Un case_expression no puede incluir operadores relacionales como < o > para la comparación con switch_expression. Para probar la desigualdad, utilice las instrucciones if, elseif, else .

  • La instrucción MATLAB switch no cae a través de una instrucción de lenguaje C switch . Si la primera instrucción case es true, MATLAB no ejecuta las demás instrucciones case . Por ejemplo, este programa genera un número entero al azar, y si es par lo divide por 2:

    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 concreto de ese caso. Dado que MATLAB ejecuta sólo un caso de cualquier instrucción switch , las variables definidas en un caso no están disponibles para otros casos. Por ejemplo, si el espacio de trabajo actual no contiene una variable x, sólo se pueden utilizar los casos que definen x :

    switch choice
       case 1
          x = -pi:0.01:pi;
       case 2
          % does not know anything about x
    end
  • No utilice una instrucción break dentro de un bloque switch . break no se define fuera de un bucle for o while .

Capacidades ampliadas

Consulte también

| | |

Introducido antes de R2006a