Para que un programa tome decisiones, antes tiene que saber comparar valores y responder preguntas del tipo:
En cuanto empiezas a hacer este tipo de preguntas, entras en el terreno de la lógica booleana.
true o falseUna comparación no devuelve un número ni un string. Devuelve un booleano:
Eso significa que una comparación siempre responde con una de estas dos posibilidades:
truefalseY esa respuesta será la que después usemos en if, while y otras estructuras del lenguaje.
Estos son los más importantes al empezar:
> mayor que< menor que>= mayor o igual que<= menor o igual que=== exactamente igual que!== distinto dePor ejemplo:
Aquí el programa ya puede responder una pregunta útil: si esa persona es mayor de edad.
=== y !==: igualdad estrictaCuando empiezas, conviene que pienses en === como “igual de verdad”.
JavaScript tiene otras comparaciones más confusas, pero para un curso base de programación la idea correcta es esta:
=== para comparar igualdad!== para comparar diferenciaAsí el código se vuelve más claro y menos traicionero.
Comparar una sola cosa está bien. Pero los programas reales suelen combinar condiciones.
Ahí entran los operadores lógicos.
Después llegan los conectores:
&& para “y”|| para “o”! para negar&& significa “las dos cosas deben cumplirse”Si una de las dos condiciones falla, el resultado será false.
|| significa “me vale con una”Solo hace falta que una condición sea verdadera.
! da la vuelta al valorEs útil cuando quieres expresar lo contrario de una condición.
Mira este caso:
Las dos expresiones usan las mismas piezas, pero no significan lo mismo:
Aquí está la clave de la lógica: no basta con mirar los valores. También importa cómo formulas la pregunta.
Comparaciones y lógica aparecen en todas partes:
Sin esta base, los condicionales se vuelven magia negra. Con esta base, empiezan a tener sentido.
Escribe varias comparaciones que devuelvan true o false, y luego combina al menos dos usando && o ||. Intenta además probar una negación con ! para ver cómo cambia el resultado.
Comparar es el principio de decidir...