6. Condicional anidada (4.2.4)
Condicional anidada
Section titled “Condicional anidada”Una condicional anidada es una condicional escrita dentro de una rama de otra.
Si <condición exterior> Entonces Si <condición interior> Entonces ... Sino ... FinSiSino ...FinSiLa condición interior solo se evalúa cuando la exterior llevó a esa rama.
Se usa cuando una decisión depende de otra, o cuando cada falla necesita una respuesta distinta.
Ejemplo: retiro en el cajero
Section titled “Ejemplo: retiro en el cajero”El cajero solo entrega billetes de $100 y no permite retirar más que el saldo.
3: Mostrar "Monto a retirar: " Entrada: monto Si monto <= saldo Entonces Si monto % 100 = 0 Entonces saldo = saldo - monto Mostrar "Retire su efectivo. Nuevo saldo: $", saldo Sino Mostrar "Solo se entregan billetes de $100" FinSi Sino Mostrar "Saldo insuficiente" FinSiRetiro en el cajero: prueba
Section titled “Retiro en el cajero: prueba”monto (saldo 2500) | Exterior | Interior | Pantalla |
|---|---|---|---|
| 700 | Verdadera | Verdadera | Retire su efectivo. Nuevo saldo: $1800 |
| 750 | Verdadera | Falsa | Solo se entregan billetes de $100 |
| 3000 | Falsa | No se evalúa | Saldo insuficiente |
| 2500 | Verdadera | Verdadera | Retire su efectivo. Nuevo saldo: $0 |
¿Anidar o usar Y?
Section titled “¿Anidar o usar Y?”Si monto <= saldo Y monto % 100 = 0 Entonces saldo = saldo - montoSino Mostrar "No se puede retirar"FinSiMás corta, pero el usuario no sabe por qué se rechazó.
Cada falla tiene su propio mensaje. Además, el orden expresa una prioridad: primero se revisa el saldo.
Criterio: si todas las fallas llevan a la misma acción, usa Y. Si necesitan acciones distintas, anida.
Limitación: más de tres niveles de anidamiento vuelven el algoritmo difícil de leer y de probar. Es señal de que conviene reorganizarlo.
Traducción a PSeInt
Section titled “Traducción a PSeInt”| Pseudocódigo | PSeInt |
|---|---|
Si … Entonces … Sino … FinSi | Igual (Sino y SiNo son equivalentes) |
Segun opcion Hacer … De Otro Modo: … FinSegun | Igual |
Cadena Sino Si | Un Si dentro de cada SiNo, con un FinSi por cada Si |
Si peso <= 0 Entonces Escribir "Peso no válido"SiNo Si peso <= 1 Entonces tarifa = TARIFA_HASTA_1KG SiNo ... FinSiFinSiLa traducción muestra lo que realmente es una cadena Sino Si: condicionales anidadas en la rama falsa.
Qué sigue
Section titled “Qué sigue”Continúa con 7. Resolución de problemas con condicionales.

