Declaración de cambio de C # (con ejemplos)

En este artículo, aprenderemos sobre la instrucción switch en C # y cómo usarla con ejemplos.

La instrucción Switch se puede usar para reemplazar la instrucción if… else if en C #. La ventaja de usar la instrucción switch over if … else if es que los códigos se verán mucho más limpios y legibles con switch.

La sintaxis de la instrucción switch es:

 switch (variable / expresión) (caso valor1: // Declaraciones ejecutadas si expresión (o variable) = valor1 ruptura; caso valor2: // Declaraciones ejecutadas si expresión (o variable) = valor1 ruptura;……………… predeterminado: / / Declaraciones ejecutadas si ningún caso coincide) 

La declaración de cambio evalúa la expresión (o variable) y compara su valor con los valores (o expresión) de cada caso (valor1, valor2,…). Cuando encuentra el valor coincidente, se ejecutan las declaraciones dentro de ese caso.

Pero, si ninguno de los casos anteriores coincide con la expresión, defaultse ejecutan las declaraciones dentro del bloque. La instrucción predeterminada al final del cambio es similar al bloque else en la instrucción if else.

Sin embargo, un problema con la instrucción de cambio es que cuando se encuentra el valor coincidente, ejecuta todas las instrucciones hasta el final del bloque de cambio.

Para evitar esto, usamos una breakdeclaración al final de cada caso. La declaración de interrupción impide que el programa ejecute declaraciones que no coincidan al finalizar la ejecución de la declaración de conmutación.

Para obtener más información sobre la instrucción break, visite C # break statement.

Ejemplo 1: instrucción de cambio de C #

 using System; namespace Conditional ( class SwitchCase ( public static void Main(string() args) ( char ch; Console.WriteLine("Enter an alphabet"); ch = Convert.ToChar(Console.ReadLine()); switch(Char.ToLower(ch)) ( case 'a': Console.WriteLine("Vowel"); break; case 'e': Console.WriteLine("Vowel"); break; case 'i': Console.WriteLine("Vowel"); break; case 'o': Console.WriteLine("Vowel"); break; case 'u': Console.WriteLine("Vowel"); break; default: Console.WriteLine("Not a vowel"); break; ) ) ) ) 

Cuando ejecutamos el programa, la salida será:

 Ingrese un alfabeto X No es una vocal 

En este ejemplo, se solicita al usuario que introduzca un alfabeto. El alfabeto se convierte a minúsculas utilizando el ToLower()método si está en mayúsculas.

Luego, la declaración de cambio verifica si el alfabeto ingresado por el usuario es alguno de a, e, i, o or u.

Si uno de los casos coincide, Vowelse imprime; de ​​lo contrario, el control pasa al bloque predeterminado y Not a vowelse imprime como salida.

Dado que la salida para todas las vocales es la misma, podemos unir los casos como:

Ejemplo 2: C # switch Statement con casos agrupados

 using System; namespace Conditional ( class SwitchCase ( public static void Main(string() args) ( char ch; Console.WriteLine("Enter an alphabet"); ch = Convert.ToChar(Console.ReadLine()); switch(Char.ToLower(ch)) ( case 'a': case 'e': case 'i': case 'o': case 'u': Console.WriteLine("Vowel"); break; default: Console.WriteLine("Not a vowel"); break; ) ) ) ) 

La salida de ambos programas es la misma. En el programa anterior, todas las vocales imprimen la salida Vowely se rompen con la instrucción de cambio.

Aunque la instrucción switch hace que el código parezca más limpio que la instrucción if … else if, switch está restringido para trabajar con tipos de datos limitados. La instrucción Switch en C # solo funciona con:

  • Tipos de datos primitivos: bool, char y tipo integral
  • Tipos enumerados (enumeración)
  • Clase de cadena
  • Tipos que aceptan valores NULL de los tipos de datos anteriores

Ejemplo 3: programa de calculadora simple que usa C # switch Statement

 using System; namespace Conditional ( class SwitchCase ( public static void Main(string() args) ( char op; double first, second, result; Console.Write("Enter first number: "); first = Convert.ToDouble(Console.ReadLine()); Console.Write("Enter second number: "); second = Convert.ToDouble(Console.ReadLine()); Console.Write("Enter operator (+, -, *, /): "); op = (char)Console.Read(); switch(op) ( case '+': result = first + second; Console.WriteLine("(0) + (1) = (2)", first, second, result); break; case '-': result = first - second; Console.WriteLine("(0) - (1) = (2)", first, second, result); break; case '*': result = first * second; Console.WriteLine("(0) * (1) = (2)", first, second, result); break; case '/': result = first / second; Console.WriteLine("(0) / (1) = (2)", first, second, result); break; default: Console.WriteLine("Invalid Operator"); break; ) ) ) ) 

Cuando ejecutamos el programa, la salida será:

 Ingrese el primer número: -13.11 Ingrese el segundo número: 2.41 Ingrese el operador (+, -, *, /): * -13.11 * 2.41 = -31.5951 

El programa anterior toma dos operandos y un operador como entrada del usuario y realiza la operación basándose en el operador.

Las entradas se obtienen del usuario mediante el método ReadLine()y Read(). Para obtener más información, visite Entrada y salida básica de C #.

El programa utiliza una declaración de caso de cambio para la toma de decisiones. Alternativamente, podemos usar la escalera if-else if para realizar la misma operación.

Articulos interesantes...