Módulo 3 · Control de Flujo I: Condicionales

Operadores lógicos (AND, OR, NOT)

Cómo se combinan condiciones con &&, || y !: qué significa cada uno, cómo se leen juntos y por qué conviene poner paréntesis y nombres claros.

Definición rápida

Los operadores lógicos combinan booleanos: AND exige que todos se cumplan, OR que se cumpla al menos uno y NOT invierte el valor.

Los operadores lógicos combinan condiciones: && (Y), || (O) y ! (NO). Sirven para pasar de comprobar una sola cosa a expresar una regla completa, del tipo «puede comprar si es mayor de edad y tiene saldo».

Los tres, con ejemplos

true && true;    // true    → && exige que ambos se cumplan
true && false;   // false
false || true;   // true    → || basta con uno
false || false;  // false
!true;           // false   → ! invierte

Aplicado a un caso concreto:

const edad = 20;
const tieneSaldo = true;

const puedeComprar = edad >= 18 && tieneSaldo;   // true

Guardar la condición en una variable con buen nombre es uno de los hábitos que más mejora la legibilidad: el condicional queda en una línea que se lee como una frase.

Paréntesis: úsalos

! se aplica primero, después && y por último ||. Es decir:

// esto...
if (esSocio || esMayor && tieneEntrada) { }

// ...significa esto
if (esSocio || (esMayor && tieneEntrada)) { }

Las dos líneas son idénticas para el intérprete y muy distintas para quien lee el código. Escribe los paréntesis aunque no sean necesarios.

Evitar la doble negación

// ilegible
if (!(edad < 18 || !tieneEntrada)) { }

// lo mismo, en positivo
const puedePasar = edad >= 18 && tieneEntrada;
if (puedePasar) { }

Cuando te encuentres negando una condición compuesta, casi siempre existe una versión equivalente en positivo con la mitad de carga mental.

Errores típicos

  • Confundir && con ||. «Mayor de edad o con entrada» deja pasar a un niño con entrada; comprueba si el enunciado exige las dos cosas o una.
  • Usar & o | (un solo símbolo): son operadores de bits, no lógicos, y producen resultados numéricos inesperados.
  • Encadenar cinco condiciones en un if. Divídelas en variables con nombre.

Dónde se practica

Lo que cuesta no son los símbolos, es leer un enunciado en castellano y decidir si esa regla es un Y, un O, o una combinación con negaciones. Ese ejercicio de traducción es el que se hace en el módulo 3 del curso, con validaciones que se comprueban automáticamente contra los casos que suelen fallar. Consulta el temario.

Preguntas frecuentes

¿&& o || tienen prioridad?

&& se evalúa antes que ||, igual que la multiplicación antes que la suma. Cuando mezcles los dos, usa paréntesis: es más claro y evita errores.

¿Cómo se niega una condición compuesta?

!(a && b) equivale a !a || !b, y !(a || b) equivale a !a && !b. En la práctica casi siempre es más legible reescribir la condición en positivo.

¿Puedo usar && con valores que no sean booleanos?

Sí, y JavaScript los interpreta como verdaderos o falsos, pero al empezar es mejor mantener las condiciones como comparaciones explícitas para que el código diga lo que quieres decir.