8. Conjunción (AND)

La conjunción une proposiciones y solo es verdadera cuando todas las condiciones involucradas son verdaderas. En programación se usa para exigir varios requisitos al mismo tiempo.

8.1 Introducción

La conjunción es un operador lógico binario: combina dos proposiciones y produce una nueva proposición compuesta.

Se lee como y. Si tenemos dos proposiciones p y q, la conjunción se escribe p ∧ q y se lee "p y q".

8.2 Idea principal

La conjunción solo es verdadera cuando ambas proposiciones son verdaderas.

Para que p ∧ q sea verdadera, deben cumplirse p y q al mismo tiempo.

Ejemplo en lenguaje natural:

  • p: El usuario está registrado.
  • q: El usuario verificó su email.
  • p ∧ q: El usuario está registrado y verificó su email.

8.3 Tabla de verdad

La tabla de verdad de la conjunción muestra que el resultado solo es verdadero en un caso.

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

8.4 Conjunción en JavaScript

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

const usuarioRegistrado = true;
const emailVerificado = true;

const puedeIngresar = usuarioRegistrado && emailVerificado;

console.log(puedeIngresar);

El resultado es true porque las dos proposiciones son verdaderas.

8.5 Cuando una condición falla

Si al menos una de las proposiciones es falsa, toda la conjunción es falsa.

const hayStock = true;
const pagoAprobado = false;

const puedeComprar = hayStock && pagoAprobado;

console.log(puedeComprar);

Aunque hay stock, la compra no puede realizarse porque el pago no fue aprobado.

8.6 Conjunción con más de dos proposiciones

En programación es común exigir más de dos condiciones al mismo tiempo. Una conjunción con varias proposiciones solo será verdadera si todas son verdaderas.

const edad = 22;
const aceptoTerminos = true;
const emailVerificado = true;

const registroPermitido = edad >= 18 && aceptoTerminos && emailVerificado;

console.log(registroPermitido);

La regla exige mayoría de edad, aceptación de términos y email verificado.

8.7 Conjunción en estructuras if

El operador AND se usa frecuentemente para controlar si un bloque de código debe ejecutarse.

const esAdmin = true;
const cuentaActiva = true;

if (esAdmin && cuentaActiva) {
  console.log("Acceso al panel administrativo");
} else {
  console.log("Acceso denegado");
}

El acceso solo se permite cuando el usuario es administrador y su cuenta está activa.

8.8 Descomponer condiciones

Cuando una condición tiene varias partes, conviene separarlas en variables booleanas con nombres claros.

const password = "abc12345";
const confirmacion = "abc12345";

const tieneLongitudValida = password.length >= 8;
const coincideConfirmacion = password === confirmacion;

const passwordValida = tieneLongitudValida && coincideConfirmacion;

console.log(passwordValida);

Separar las proposiciones simples mejora la legibilidad y facilita encontrar errores.

8.9 Conjunción y restricciones

La conjunción es útil cuando una acción requiere cumplir varias restricciones simultáneamente.

Situación Condiciones Expresión
Comprar producto Hay stock y el pago fue aprobado hayStock && pagoAprobado
Iniciar sesión Email verificado y contraseña correcta emailVerificado && passwordCorrecta
Publicar artículo Es editor y el artículo está completo esEditor && articuloCompleto
Usar descuento Cupón válido y compra mínima alcanzada cuponValido && compraMinima

8.10 Evaluación de izquierda a derecha

JavaScript evalúa una conjunción de izquierda a derecha. Si encuentra una parte falsa, ya no necesita evaluar el resto para saber que el resultado final será falso.

const usuario = null;

if (usuario !== null && usuario.activo) {
  console.log("Usuario activo");
}

La segunda parte solo se evalúa si la primera es verdadera. Esto evita intentar acceder a usuario.activo cuando usuario es null.

8.11 AND lógico y valores no booleanos

En lógica matemática trabajamos con verdadero y falso. En JavaScript, && también puede operar con valores no booleanos y devolver uno de esos valores.

const nombre = "Ana";

console.log(nombre && "Nombre ingresado");

Este comportamiento pertenece al lenguaje JavaScript. Para estudiar lógica, conviene pensar primero en expresiones que devuelven claramente true o false.

8.12 Conjunción y negación

La conjunción puede combinarse con negaciones para expresar reglas más específicas.

const cuentaActiva = true;
const cuentaBloqueada = false;

const puedeOperar = cuentaActiva && !cuentaBloqueada;

console.log(puedeOperar);

La operación se permite cuando la cuenta está activa y no está bloqueada.

8.13 Errores comunes

  • Usar && cuando la regla permite que se cumpla solo una condición.
  • Olvidar que una sola proposición falsa vuelve falsa toda la conjunción.
  • Escribir condiciones demasiado largas sin variables intermedias.
  • Confundir el AND lógico && con otros operadores del lenguaje.
  • No considerar el orden de evaluación cuando una parte depende de otra.

8.14 Qué debes recordar de este tema

  • La conjunción se representa como p ∧ q y se lee "p y q".
  • Solo es verdadera cuando todas las proposiciones son verdaderas.
  • En JavaScript se expresa con &&.
  • Es útil para reglas que exigen varios requisitos al mismo tiempo.
  • Separar condiciones complejas en variables booleanas mejora la claridad.

8.15 Conclusión

La conjunción permite construir condiciones estrictas: todas las partes deben cumplirse para que el resultado sea verdadero. Por eso es fundamental en validaciones, permisos y reglas de negocio.

En el próximo tema estudiaremos la disyunción, también conocida como operador OR.