6. Operadores lógicos fundamentales

Los operadores lógicos permiten negar, combinar y relacionar proposiciones. Son la base para construir expresiones lógicas, tablas de verdad y condiciones en programas.

6.1 Introducción

Las proposiciones simples permiten afirmar una sola idea. Para construir razonamientos más completos necesitamos operadores lógicos, también llamados conectores lógicos.

Un operador lógico toma una o más proposiciones y produce una nueva proposición cuyo valor de verdad depende de las proposiciones originales.

6.2 Qué es un operador lógico

Un operador lógico es un símbolo o palabra que permite formar una expresión lógica a partir de una o varias proposiciones.

Si p y q son proposiciones, entonces expresiones como no p, p y q, p o q también son proposiciones.

Por ejemplo, si tenemos estas proposiciones:

  • p: El usuario está activo.
  • q: El usuario tiene permiso.

Podemos construir una proposición compuesta: p y q, que significa "el usuario está activo y tiene permiso".

6.3 Lista de operadores fundamentales

Los operadores principales que estudiaremos en el curso son los siguientes:

Operador Nombre Símbolo lógico Idea básica
No Negación ¬p Invierte el valor de verdad
Y Conjunción p ∧ q Exige que ambas proposiciones sean verdaderas
O Disyunción p ∨ q Exige que al menos una proposición sea verdadera
O exclusivo XOR p ⊕ q Exige que una sola proposición sea verdadera
Si... entonces Implicación p → q Relaciona una condición con una consecuencia
Si y solo si Bicondicional p ↔ q Exige que ambas proposiciones tengan el mismo valor

6.4 Negación

La negación cambia el valor de verdad de una proposición. Si p es verdadera, ¬p es falsa. Si p es falsa, ¬p es verdadera.

const cuentaBloqueada = false;

const puedeIngresar = !cuentaBloqueada;

console.log(puedeIngresar);

En JavaScript, la negación se expresa con el operador !.

6.5 Conjunción

La conjunción une dos proposiciones y solo resulta verdadera cuando ambas son verdaderas.

const emailVerificado = true;
const passwordCorrecta = true;

const puedeIniciarSesion = emailVerificado && passwordCorrecta;

console.log(puedeIniciarSesion);

En JavaScript, la conjunción se expresa con &&.

6.6 Disyunción

La disyunción une dos proposiciones y resulta verdadera cuando al menos una de ellas es verdadera.

const esAdmin = false;
const esSupervisor = true;

const puedeVerPanel = esAdmin || esSupervisor;

console.log(puedeVerPanel);

En JavaScript, la disyunción se expresa con ||.

6.7 Disyunción exclusiva

La disyunción exclusiva, o XOR, resulta verdadera cuando exactamente una de las proposiciones es verdadera. Si ambas son verdaderas o ambas son falsas, el resultado es falso.

JavaScript no tiene un operador lógico XOR directo para booleanos, pero se puede expresar comparando si los valores son distintos.

const pagoConTarjeta = true;
const pagoConTransferencia = false;

const eligioUnSoloMedioDePago = pagoConTarjeta !== pagoConTransferencia;

console.log(eligioUnSoloMedioDePago);

6.8 Implicación lógica

La implicación se lee como "si p, entonces q". Relaciona una condición con una consecuencia.

Si el pago fue aprobado, entonces se genera el pedido.

En programación, esta idea suele aparecer mediante estructuras condicionales.

const pagoAprobado = true;

if (pagoAprobado) {
  console.log("Generar pedido");
}

6.9 Bicondicional

El bicondicional se lee como "p si y solo si q". Es verdadero cuando ambas proposiciones tienen el mismo valor de verdad.

Un ejemplo informal:

El usuario puede acceder si y solo si su cuenta está habilitada.

En JavaScript puede representarse comparando dos valores booleanos.

const puedeAcceder = true;
const cuentaHabilitada = true;

const reglaCumplida = puedeAcceder === cuentaHabilitada;

console.log(reglaCumplida);

6.10 Operadores unarios y binarios

Los operadores lógicos pueden clasificarse según la cantidad de proposiciones que necesitan.

Tipo Descripción Ejemplo
Unario Opera sobre una sola proposición ¬p
Binario Opera sobre dos proposiciones p ∧ q

La negación es un operador unario. La conjunción, disyunción, XOR, implicación y bicondicional son operadores binarios.

6.11 Cómo nombrar proposiciones

Para estudiar expresiones lógicas se suelen usar letras como p, q y r. En programación conviene usar nombres más descriptivos.

Forma lógica Nombre en código Significado
p usuarioActivo El usuario está activo
q tienePermiso El usuario tiene permiso
r emailVerificado El email fue verificado

6.12 Construir una expresión lógica

Supongamos que una aplicación permite editar un documento si el usuario es administrador o si es autor del documento y el documento no está bloqueado.

const esAdmin = false;
const esAutor = true;
const documentoBloqueado = false;

const puedeEditar = esAdmin || (esAutor && !documentoBloqueado);

console.log(puedeEditar);

Esta expresión combina disyunción, conjunción y negación. Los paréntesis aclaran que la condición de autor se evalúa junto con la negación del bloqueo.

6.13 Operadores lógicos y tablas de verdad

Cada operador lógico tiene una regla precisa para determinar el valor de verdad resultante. Esas reglas se representan mediante tablas de verdad.

Por ejemplo, para la conjunción p ∧ q, el resultado solo es verdadero cuando p y q son verdaderas.

p q p ∧ q
V V V
V F F
F V F
F F F

6.14 Errores comunes

  • Confundir disyunción inclusiva con disyunción exclusiva.
  • Usar && cuando la regla requiere ||.
  • Olvidar que la negación invierte el valor de verdad.
  • Escribir expresiones largas sin paréntesis ni variables intermedias.
  • Tratar la implicación como si fuera una simple conjunción.

6.15 Qué debes recordar de este tema

  • Los operadores lógicos permiten formar proposiciones compuestas.
  • La negación opera sobre una proposición; los demás operadores principales operan sobre dos.
  • Conjunción, disyunción, XOR, implicación y bicondicional tienen reglas diferentes.
  • En JavaScript se usan especialmente !, && y ||.
  • Las tablas de verdad permiten estudiar con precisión el comportamiento de cada operador.

6.16 Conclusión

Los operadores lógicos son herramientas para construir expresiones más complejas a partir de proposiciones simples. Entender su significado evita errores al escribir condiciones y reglas de decisión.

En el próximo tema estudiaremos la negación en detalle.