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
switchincluye 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): Cadacaserepresenta 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 bloqueswitchuna 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
diaes 1, se imprime "Lunes" y se usabreakpara salir delswitch. - Este proceso se repite para los valores del 2 al 7.
- Si
diano coincide con ninguno de los casos, se ejecuta el bloquedefaultque 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
defaultque imprime un mensaje de error.
- Se evalúa el valor de
Resumen
- Las sentencias
switchson útiles para simplificar la toma de decisiones basada en múltiples valores posibles de una expresión. - La estructura
switchmejora la legibilidad y el mantenimiento del código en comparación con múltiples sentenciasif-else. - Es importante recordar usar la palabra clave
breakpara 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
