Los operadores lógicos permiten combinar condiciones en código y expresan las mismas ideas de conjunción, disyunción y negación que se estudian en lógica matemática.
Casi todos los lenguajes de programación tienen operadores para representar AND, OR y NOT.
La idea lógica es la misma, aunque la sintaxis cambia según el lenguaje. Por eso conviene separar el concepto de la forma concreta de escribirlo.
Los operadores más comunes son:
| Lenguaje | AND | OR | NOT |
|---|---|---|---|
| JavaScript | && | || | ! |
| Python | and | or | not |
| Java | && | || | ! |
| C# | && | || | ! |
| SQL | AND | OR | NOT |
AND se usa cuando varias condiciones deben ser verdaderas a la vez.
if (usuarioActivo && tienePermiso) {
mostrarPanel();
}
El panel se muestra solo si el usuario está activo y además tiene permiso.
OR se usa cuando alcanza con que una condición sea verdadera.
if (esAdmin || esEditor) {
mostrarHerramientas();
}
Las herramientas se muestran si el usuario es administrador o editor.
NOT invierte una condición.
if (!cuentaBloqueada) {
permitirIngreso();
}
La función se ejecuta cuando no es verdad que la cuenta esté bloqueada.
Python usa palabras reservadas para los operadores lógicos.
if usuario_activo and tiene_permiso:
mostrar_panel()
La lógica es equivalente a usuarioActivo && tienePermiso en JavaScript.
Java usa símbolos similares a JavaScript para las condiciones booleanas.
if (usuarioActivo && tienePermiso) {
mostrarPanel();
}
La expresión completa debe evaluar a un valor booleano.
SQL usa operadores lógicos para filtrar registros.
SELECT *
FROM usuarios
WHERE activo = 1 AND rol = 'admin';
La consulta devuelve usuarios que cumplen ambas condiciones.
Los operadores lógicos suelen combinar resultados de comparaciones.
| Operador | Significado | Ejemplo |
|---|---|---|
| > | Mayor que | edad > 18 |
| >= | Mayor o igual que | edad >= 18 |
| < | Menor que | stock < 10 |
| == / === | Igualdad, según el lenguaje | rol === "admin" |
| != / !== | Diferencia, según el lenguaje | estado !== "cerrado" |
Los lenguajes aplican reglas de precedencia para decidir qué parte de una expresión se evalúa primero.
const resultado = a || b && c;
En muchos lenguajes, AND tiene mayor precedencia que OR, por lo que la expresión se interpreta como:
const resultado = a || (b && c);
Usar paréntesis evita ambigüedades.
Muchos lenguajes no evalúan una condición completa si ya conocen el resultado.
if (usuario !== null && usuario.activo) {
mostrarPerfil();
}
Si usuario !== null es falso, la segunda parte no se evalúa. Esto evita intentar acceder a una propiedad de un valor nulo.
Algunos lenguajes permiten usar operadores lógicos con valores que no son estrictamente booleanos.
const nombreVisible = nombre || "Sin nombre";
En JavaScript, este patrón usa OR para elegir un valor alternativo. Aunque es práctico, conviene distinguirlo de una proposición lógica estricta.
En varios lenguajes existen operadores parecidos que no significan lo mismo.
Confundirlos puede producir errores difíciles de detectar.
Los operadores lógicos en lenguajes de programación son la forma práctica de aplicar la lógica matemática al código. Comprender su significado, precedencia y evaluación evita errores en condiciones y validaciones.
En el próximo tema estudiaremos la evaluación de expresiones condicionales.