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
- Sintaxis Básica: La estructura básica de una sentencia
switch
incluye la palabra claveswitch
, seguida de una expresión entre paréntesis y un bloque de código entre llaves{}
que contiene múltiples casoscase
. - Casos (
case
): Cadacase
representa un valor posible de la expresión. Si la expresión coincide con el valor delcase
, se ejecuta el bloque de código asociado. - Caso Predeterminado (
default
): Es opcional y se ejecuta si ninguno de los casos coincide con la expresión. - Palabra Clave
break
: Se utiliza para salir del bloqueswitch
una vez que se ha ejecutado un caso. Sinbreak
, 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
- Entrada del Usuario: Se solicita al usuario que ingrese un número del 1 al 7.
- Conversión de Datos: El número ingresado se convierte de cadena a entero usando
Convert.ToInt32
. - Sentencia
switch
:- Se evalúa el valor de
dia
. - Si
dia
es 1, se imprime "Lunes" y se usabreak
para salir delswitch
. - Este proceso se repite para los valores del 2 al 7.
- Si
dia
no coincide con ninguno de los casos, se ejecuta el bloquedefault
que imprime un mensaje de error.
- Se evalúa el valor de
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
- Entrada del Usuario: Se solicita al usuario que ingrese el número de patas.
- Conversión de Datos: El número ingresado se convierte de cadena a entero usando
Convert.ToInt32
. - 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.
- Se evalúa el valor de
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 sentenciasif-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!
Curso de Programación en C#
Módulo 1: Introducción a C#
- Introducción a C#
- Configuración del Entorno de Desarrollo
- Programa Hola Mundo
- Sintaxis y Estructura Básica
- Variables y Tipos de Datos
Módulo 2: Estructuras de Control
Módulo 3: Programación Orientada a Objetos
- Clases y Objetos
- Métodos
- Constructores y Destructores
- Herencia
- Polimorfismo
- Encapsulamiento
- Abstracción
Módulo 4: Conceptos Avanzados de C#
- Interfaces
- Delegados y Eventos
- Genéricos
- Colecciones
- LINQ (Consulta Integrada en el Lenguaje)
- Programación Asíncrona
Módulo 5: Trabajando con Datos
Módulo 6: Temas Avanzados
- Reflexión
- Atributos
- Programación Dinámica
- Gestión de Memoria y Recolección de Basura
- Multihilo y Programación Paralela
Módulo 7: Construcción de Aplicaciones
Módulo 8: Mejores Prácticas y Patrones de Diseño
- Estándares de Codificación y Mejores Prácticas
- Patrones de Diseño
- Pruebas Unitarias
- Revisión y Refactorización de Código