Switch-Case y Pattern Matching
Mecanismos de selección por caso en C, Java, JavaScript y Python.
SLIDE 1 / 6
1. Evaluación de Múltiples Casos
Un `switch` evalúa una expresión y busca coincidencia directa entre múltiples etiquetas `case`, evitando cadenas extensas de `if-else`.
MECANISMO DE MATCH
case 'A':Acción A + break
default:Fallback por defecto
2. C: Switch con Enteros y Chars
En C `switch` solo acepta expresiones enteras o caracteres (`int`, `char`, `enum`). Requiere `break` obligatorio para evitar fallthrough.
switch.c
char opcion = 'B';
switch (opcion) {
case 'A': printf("Opción A\n"); break;
case 'B': printf("Opción B\n"); break;
default: printf("Desconocido\n");
} 3. Java: Switch Expressions (Arrow Syntax)
Java moderno incorpora expresiones switch con sintaxis `case X ->`, eliminando el riesgo de fallthrough.
SwitchExpr.java
String dia = "LUNES";
String tipo = switch (dia) {
case "SABADO", "DOMINGO" -> "Finde";
default -> "Laboral";
}; 4. JavaScript: Switch con Comparación Estricta (===)
JS evalúa expresiones arbitrarias mediante comparación estricta de tipo y valor (`===`).
switch.js
const estado = 200;
switch (estado) {
case 200: console.log("OK"); break;
case 404: console.log("Not Found"); break;
} 5. Python: Structural Pattern Matching (match-case)
Python 3.10+ introdujo `match-case` permitiendo Pattern Matching avanzado sobre tuplas, diccionarios y tipos.
pattern_matching.py
command = ["quit"]
match command:
case ["load", filename]: print(f"Cargando {filename}")
case ["quit"]: print("Saliendo...")
case _: print("Comando invalido") 6. Simulador Interactivo de Casos
Seleccioná una opción para simular el caso ejecutado:
C
case 200: printf("OK"); break;
Java
case 200 -> "OK";
JavaScript
case 200: console.log("OK"); break;
Python
case 200: print("OK")
Navegación: Flechas Izq / Der