Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial programming >> Lenguaje C

Dominando la sentencia switch en C#: Sintaxis, ejemplos y mejores prácticas

Sentencia switch en C#

Descubre cómo reemplazar cadenas complejas if-else con una sentencia switch limpia y legible en C#, con ejemplos prácticos.

Las sentencias switch simplifican la toma de decisiones evaluando una sola expresión y ejecutando el bloque case coincidente. Comparado con una larga escalera if-else, la sintaxis switch es más concisa y fácil de mantener.

La estructura básica es:

switch (variableOrExpression) {
    case value1:
        // Código para value1
        break;
    case value2:
        // Código para value2
        break;
    // …
    default:
        // Código cuando ningún case coincide
}

Cuando la expresión coincide con un case, el bloque correspondiente se ejecuta hasta que un break termina el switch. Si ningún case coincide, se ejecuta el bloque default, similar a una cláusula else.

Sin break, la ejecución "caería" y continuaría en los cases siguientes —a menudo causando errores. Para más sobre sentencia break en C#, consulta la documentación oficial.


Ejemplo 1: Identificando vocales

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;
            }
        }
    }
}

Salida:

Enter an alphabet X Not a vowel

Aquí, la entrada del usuario se convierte a minúscula y se compara con los cases de vocales. Si ninguna vocal coincide, se muestra el mensaje default.

Como todos los cases de vocales realizan la misma acción, pueden agruparse:


Ejemplo 2: Cases 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 es idéntica, pero el código es notablemente más limpio.

Las sentencias switch están limitadas a tipos de datos específicos:


Ejemplo 3: Calculadora simple

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;
            }
        }
    }
}

Ejecución de ejemplo:

Enter first number: -13.11
Enter second number: 2.41
Enter operator (+, -, *, /): *
-13.11 * 2.41 = -31.5951

Esta calculadora acepta dos operandos y un operador, luego realiza la operación solicitada usando switch. Las entradas se leen con ReadLine() y Read(); para más sobre entrada/salida, vea Entrada y salida básica en C#.

Aunque una cadena if-else podría reemplazar al switch, este ofrece intención más clara y ejecución más rápida para valores discretos.

Lenguaje C

  1. Circuito con interruptor: guía práctica de circuitos eléctricos básicos
  2. Experimento con Diodo Conmutador: Supresión de Retroceso Inductivo con Lámpara de Neón
  3. Interruptores eléctricos: tipos, funciones y aplicaciones
  4. Eliminación de rebote en contactos de interruptores mecánicos
  5. Multímetros: De Analógicos a Digitales — Guía Completa
  6. Sentencia break en C#: Cómo y cuándo usarla
  7. Dominando la sentencia continue en C#: Cómo saltar iteraciones de bucles eficazmente
  8. Dominando la Sentencia break en C++
  9. Dominando switch-case en C++: Sintaxis, uso y ejemplos prácticos
  10. Dominando la sintaxis básica de C: Tokens, estructura y punto y coma
  11. Dominando la sentencia pass en Python: Guía práctica