Las sentencias switch en C# son una estructura de control que permite tomar decisiones basadas en el valor de una expresión. Es una alternativa más limpia y legible a múltiples sentencias if-else cuando se trata de comparar una variable con varios valores posibles.

Conceptos Clave

  1. Sintaxis Básica: La estructura básica de una sentencia switch incluye la palabra clave switch, seguida de una expresión entre paréntesis y un bloque de código entre llaves {} que contiene múltiples casos case.
  2. Casos (case): Cada case representa un valor posible de la expresión. Si la expresión coincide con el valor del case, se ejecuta el bloque de código asociado.
  3. Caso Predeterminado (default): Es opcional y se ejecuta si ninguno de los casos coincide con la expresión.
  4. Palabra Clave break: Se utiliza para salir del bloque switch una vez que se ha ejecutado un caso. Sin break, la ejecución continuará con el siguiente caso (comportamiento conocido como "fall-through").

Sintaxis

switch (expresion)
{
    case valor1:
        // Código a ejecutar si expresion == valor1
        break;
    case valor2:
        // Código a ejecutar si expresion == valor2
        break;
    // Más casos...
    default:
        // Código a ejecutar si ninguno de los casos anteriores coincide
        break;
}

Ejemplo Práctico

Vamos a crear un programa que determine el día de la semana basado en un número del 1 al 7.

using System;

class Program
{
    static void Main()
    {
        Console.WriteLine("Ingrese un número del 1 al 7:");
        int dia = Convert.ToInt32(Console.ReadLine());

        switch (dia)
        {
            case 1:
                Console.WriteLine("Lunes");
                break;
            case 2:
                Console.WriteLine("Martes");
                break;
            case 3:
                Console.WriteLine("Miércoles");
                break;
            case 4:
                Console.WriteLine("Jueves");
                break;
            case 5:
                Console.WriteLine("Viernes");
                break;
            case 6:
                Console.WriteLine("Sábado");
                break;
            case 7:
                Console.WriteLine("Domingo");
                break;
            default:
                Console.WriteLine("Número inválido. Por favor, ingrese un número del 1 al 7.");
                break;
        }
    }
}

Explicación del Código

  1. Entrada del Usuario: Se solicita al usuario que ingrese un número del 1 al 7.
  2. Conversión de Datos: El número ingresado se convierte de cadena a entero usando Convert.ToInt32.
  3. Sentencia switch:
    • Se evalúa el valor de dia.
    • Si dia es 1, se imprime "Lunes" y se usa break para salir del switch.
    • Este proceso se repite para los valores del 2 al 7.
    • Si dia no coincide con ninguno de los casos, se ejecuta el bloque default que imprime un mensaje de error.

Ejercicio Práctico

Ejercicio 1

Escribe un programa que determine el tipo de animal basado en el número de patas. Usa la siguiente tabla de referencia:

Número de Patas Tipo de Animal
0 Serpiente
2 Ave
4 Mamífero
6 Insecto
8 Araña

Solución

using System;

class Program
{
    static void Main()
    {
        Console.WriteLine("Ingrese el número de patas:");
        int patas = Convert.ToInt32(Console.ReadLine());

        switch (patas)
        {
            case 0:
                Console.WriteLine("Serpiente");
                break;
            case 2:
                Console.WriteLine("Ave");
                break;
            case 4:
                Console.WriteLine("Mamífero");
                break;
            case 6:
                Console.WriteLine("Insecto");
                break;
            case 8:
                Console.WriteLine("Araña");
                break;
            default:
                Console.WriteLine("Número de patas no reconocido.");
                break;
        }
    }
}

Explicación del Ejercicio

  1. Entrada del Usuario: Se solicita al usuario que ingrese el número de patas.
  2. Conversión de Datos: El número ingresado se convierte de cadena a entero usando Convert.ToInt32.
  3. Sentencia switch:
    • Se evalúa el valor de patas.
    • Dependiendo del valor, se imprime el tipo de animal correspondiente.
    • Si el número de patas no coincide con ninguno de los casos, se ejecuta el bloque default que imprime un mensaje de error.

Resumen

  • Las sentencias switch son útiles para simplificar la toma de decisiones basada en múltiples valores posibles de una expresión.
  • La estructura switch mejora la legibilidad y el mantenimiento del código en comparación con múltiples sentencias if-else.
  • Es importante recordar usar la palabra clave break para evitar el comportamiento de "fall-through".

Con estos conceptos y ejemplos, deberías estar listo para utilizar sentencias switch en tus programas en C#. ¡Continúa practicando para dominar esta estructura de control!

© Copyright 2024. Todos los derechos reservados