C #: instrucción Switch

UN switchLa declaración permite probar la igualdad de una variable con una lista de valores. Cada valor se llama caso, y la variable que se enciende se verifica para cadaswitch case.

Sintaxis

La sintaxis de un switch declaración en C # es la siguiente:

switch(expression) {
   case constant-expression1  :
      statement(s);
      break;
   case constant-expression2  :
   case constant-expression3  :
      statement(s);
      break;
  
   /* you can have any number of case statements */
   default : /* Optional */
   statement(s);
}

Las siguientes reglas se aplican a switch declaración -

  • los expression usado en un switch La declaración debe tener un tipo integral o enumerado, o ser de un tipo de clase en el que la clase tenga una única función de conversión a un tipo integral o enumerado.

  • Puede tener cualquier número de declaraciones de casos dentro de un conmutador. Cada caso va seguido del valor que se va a comparar y dos puntos.

  • los constant-expression para un caso debe ser del mismo tipo de datos que la variable en el conmutador, y debe ser una constante o un literal.

  • Cuando la variable que se enciende es igual a un caso, las declaraciones que siguen a ese caso se ejecutarán hasta que break se alcanza la declaración.

  • Cuando una break se alcanza la declaración, el conmutador termina y el flujo de control salta a la siguiente línea que sigue a la declaración del conmutador.

  • No todos los casos deben contener un break. Si nobreak aparece, entonces generará un error de tiempo de compilación.

  • UN switch declaración puede tener un opcional defaultcaso, que debe aparecer al final del interruptor. El caso predeterminado se puede utilizar para realizar una tarea cuando ninguno de los casos es verdadero.

Diagrama de flujo

Ejemplo

using System;

namespace DecisionMaking {
   class Program {
      static void Main(string[] args) {
         /* local variable definition */
         char grade = 'B';
         
         switch (grade) {
            case 'A':
               Console.WriteLine("Excellent!");
               break;
            case 'B':
            case 'C':
               Console.WriteLine("Well done");
               break;
            case 'D':
               Console.WriteLine("You passed");
               break;
            case 'F':
               Console.WriteLine("Better try again");
               break;
               default:
            Console.WriteLine("Invalid grade");
               break;
         }
         Console.WriteLine("Your grade is  {0}", grade);
         Console.ReadLine();
      }
   }
}

Cuando se compila y ejecuta el código anterior, produce el siguiente resultado:

Well done
Your grade is B