La toma de decisiones mediante lógica permite elegir acciones dentro de un algoritmo según condiciones evaluadas como verdaderas o falsas.
Un programa no solo ejecuta instrucciones en línea recta. Muchas veces debe decidir qué camino tomar según los datos disponibles.
La lógica permite expresar esas decisiones de forma precisa, verificable y consistente.
La forma más básica de decisión consiste en evaluar una condición.
if (temperatura > 30) {
activarVentilador();
}
Si la condición es verdadera, se ejecuta la acción. Si es falsa, el programa continúa sin ejecutar ese bloque.
Cuando hay dos caminos posibles, se usa una estructura condicional con alternativa.
if (edad >= 18) {
mostrarContenidoAdulto();
} else {
mostrarContenidoGeneral();
}
La lógica divide el flujo en dos casos: la condición verdadera y la condición falsa.
Algunas decisiones tienen más de dos posibilidades. En ese caso se evalúan varias condiciones en orden.
if (nota >= 90) {
nivel = "excelente";
} else if (nota >= 70) {
nivel = "aprobado";
} else {
nivel = "desaprobado";
}
El orden importa: cada condición se prueba solo si las anteriores fueron falsas.
Dos condiciones son mutuamente excluyentes si no pueden ser verdaderas al mismo tiempo.
Por ejemplo, para una edad concreta, no puede cumplirse simultáneamente:
edad < 18
edad >= 18
Diseñar reglas excluyentes evita ambigüedades en las decisiones.
A veces dos condiciones pueden ser verdaderas al mismo tiempo. Esto exige definir prioridad.
if (esClientePremium) {
descuento = 20;
} else if (tieneCupon) {
descuento = 10;
}
Si una persona es cliente premium y también tiene cupón, se aplica la primera regla porque aparece antes.
AND permite exigir varias condiciones para tomar una decisión.
if (stockDisponible && pagoAprobado) {
confirmarCompra();
}
La compra se confirma solo si hay stock y el pago fue aprobado.
OR permite tomar una decisión si se cumple al menos una condición.
if (esAdmin || esModerador) {
eliminarComentario();
}
La acción está permitida para cualquiera de los dos roles.
NOT se usa cuando la acción depende de que algo no ocurra o no esté activo.
if (!sesionExpirada) {
mantenerUsuarioConectado();
}
La decisión se toma a partir de la negación de la condición sesionExpirada.
Una tabla de decisión ayuda a revisar qué acción corresponde a cada combinación de condiciones.
| Stock | Pago aprobado | Acción |
|---|---|---|
| false | false | Rechazar compra |
| false | true | Informar falta de stock |
| true | false | Solicitar otro pago |
| true | true | Confirmar compra |
Una decisión puede depender de un valor calculado previamente.
const promedio = (nota1 + nota2 + nota3) / 3;
if (promedio >= 7) {
aprobar();
} else {
recuperar();
}
La condición lógica se aplica sobre el resultado de una operación aritmética.
Cuando una regla es importante, conviene expresar primero la condición con un nombre claro.
const puedeComprar = stockDisponible && pagoAprobado;
if (puedeComprar) {
confirmarCompra();
}
Esto hace que la decisión sea más fácil de leer y de probar.
Las decisiones deben contemplar casos límite. Por ejemplo, si la regla dice que se aprueba con nota mayor o igual a 7, entonces la nota 7 debe aprobar.
if (nota >= 7) {
aprobar();
}
Confundir > con >= cambia el comportamiento de la decisión.
Una condición mal formulada puede permitir acciones indebidas o bloquear acciones válidas.
if (edad >= 18 || tieneAutorizacion) {
permitirIngreso();
}
Esta regla permite ingresar a mayores de edad o a quienes tienen autorización. Si la intención era exigir ambas cosas, el operador correcto era AND.
La toma de decisiones mediante lógica permite construir algoritmos que responden de forma controlada a distintas situaciones. Una condición bien formulada evita ambigüedades y mejora la confiabilidad del programa.
En el próximo tema estudiaremos diagramas de flujo y lógica condicional.