Sesión 15 · Selección entre varias alternativas
Condicionales múltiples, anidadas y Según / Switch
Cuando un problema tiene más de dos alternativas necesitamos organizar las decisiones con cuidado. En esta sesión aprenderás a clasificar rangos mediante Si–Sino Si, colocar una decisión dentro de otra cuando exista dependencia y utilizar Según/Switch para menús u opciones discretas.
Elegir entre más de dos posibilidades
Ordenar rangos mediante una cadena de condiciones.
Resolver una segunda decisión solo cuando la primera lo requiere.
Usar Según/Switch cuando una variable toma opciones concretas.
Explicar por qué una estructura es más adecuada que otra.
Antes de trabajar múltiples caminos
Tres formas de organizar decisiones
1. De dos caminos a varios
Una condicional doble distingue entre dos resultados. Sin embargo, muchos problemas necesitan tres, cuatro o más categorías. Por ejemplo: Excelente, Bueno, Suficiente y Requiere apoyo.
2. Condicional múltiple con Si–Sino Si
Se utiliza cuando existen varias condiciones que deben evaluarse en orden. En nuestra convención educativa escribiremos:
3. El orden importa
Para clasificar una calificación de 0 a 10:
Con calificación 9.5, la primera condición ya es verdadera y no necesitamos seguir evaluando las demás.
4. Error por orden incorrecto
Una calificación de 9.5 cumple primero >= 6, por lo que nunca llegará a “Excelente”. Cuando trabajas rangos descendentes, normalmente conviene revisar de mayor a menor.
5. Condicional anidada
Una estructura es anidada cuando una decisión se encuentra dentro de otra. Se utiliza cuando la segunda pregunta solo tiene sentido después de conocer el resultado de la primera.
Aquí no tiene sentido evaluar el pago como parte del acceso completo si el usuario ni siquiera está registrado.
6. Anidada no significa “mejor”
No anides por costumbre. Una condición compuesta puede ser más clara cuando solo necesitas un resultado:
La anidación es útil cuando cada nivel conduce a acciones diferentes o cuando la segunda decisión depende conceptualmente de la primera.
7. Según / Switch
Según/Switch es útil cuando una misma variable se compara contra valores concretos, como una opción de menú.
En lenguajes reales puede aparecer como switch, case y default. La sintaxis exacta depende del lenguaje.
8. Cuándo NO usar Según
Según/Switch no suele ser la mejor opción para rangos como calificacion >= 9 o edad < 18. Su fortaleza está en comparar una expresión con opciones discretas: 1, 2, 3; "A", "B", "C"; etc.
9. Comparación rápida
| Estructura | Conviene cuando... | Ejemplo |
|---|---|---|
| Si–SiNo | Hay dos resultados principales. | Aprobado / No aprobado |
| Si–Sino Si | Hay varios rangos o condiciones ordenadas. | Clasificación de calificaciones |
| Anidada | Una segunda decisión depende de una primera. | Registro → pago |
| Según/Switch | Una variable se compara con opciones concretas. | Menú 1–4 |
10. Pruebas recomendadas
Para un clasificador, prueba un valor de cada categoría y los límites. Para un menú, prueba todas las opciones válidas y al menos una opción inválida. Para una anidada, procura activar cada combinación relevante de caminos.
11. Errores frecuentes
- Ordenar mal las condiciones y volver inaccesible una categoría.
- Dejar huecos entre rangos o hacer que dos categorías se traslapen.
- Olvidar una salida para valores no contemplados.
- Usar Según para condiciones de rango complejas.
- Anidar demasiado cuando una condición compuesta sería más clara.
- No probar opciones inválidas en un menú.
Clasificador por rangos
Simulador de calificación
Reglas: 9–10 Excelente; 8–<9 Bueno; 6–<8 Suficiente; menos de 6 Requiere apoyo.
Prueba los límites
Detecta el orden incorrecto
¿Qué problema produce este orden?
Decisión dentro de otra decisión
Simulador · registro y pago
Predice cada combinación
¿Compuesta o anidada?
Según / Switch para opciones concretas
Simulador de menú
1 Consultar saldo · 2 Realizar pago · 3 Ver movimientos · 4 Salir
Prueba el menú completo
Completa la estructura
¿Qué estructura elegirías?
Justifica una elección
Problema: un sistema recibe una letra de categoría: A, B, C o D y debe mostrar una descripción diferente. También necesita una respuesta para cualquier letra no válida.
Algoritmo de menú y clasificador
A. Clasificador de calificaciones · Si–Sino Si
B. Menú de sistema · Según/Switch
Lista de verificación
Reporte de evidencia
Analiza los dos algoritmos para generar el reporte.