Switch-Case & Pattern Matching
Case selection mechanisms in C, Java, JavaScript, and Python.
SLIDE 1 / 6
1. Multiple Case Evaluation
A `switch` evaluates an expression matching against multiple `case` labels, avoiding long `if-else` chains.
MATCHING MECHANISM
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. Case Match Simulator
Select an option to simulate the matched case:
C
case 200: printf("OK"); break;
Java
case 200 -> "OK";
JavaScript
case 200: console.log("OK"); break;
Python
case 200: print("OK")
Navigation: Left / Right Arrows