Lección 8: Boolean y Operadores Lógicos
En la vida real, a menudo combinas condiciones para tomar una decisión: "Si tengo dinero Y hace buen día, salgo a pasear". Java hace exactamente lo mismo usando un tipo de dato llamado boolean
y operadores lógicos.
🧠 ¿Qué es un boolean
?
Es el tipo de dato más simple. Solo puede tener dos valores posibles, como un interruptor de luz: encendido o apagado.
true
→ Verdadero, sí, 1, encendido.false
→ Falso, no, 0, apagado.
boolean tieneHambre = true; boolean tieneDinero = false;
Un booleano también puede ser el resultado de una comparación:
int edad = 20;
boolean esMayorDeEdad = (edad >= 18); // esMayorDeEdad será true
🔗 Operadores Lógicos: Juntando Ideas
Estos operadores te permiten combinar varios booleanos para crear condiciones más complejas.
&&
(AND) → Y. La condición total estrue
solo si ambas partes sontrue
.||
(OR) → O. La condición estrue
si al menos una de las partes estrue
.!
(NOT) → NO. Simplemente invierte el valor (!true
se convierte enfalse
).
🧪 Mini-práctica: ¿Puede entrar a la App?
Ahora te toca crear un filtro de acceso. Un usuario solo podrá entrar si cumple estas dos reglas a la vez:
- Su nombre es "Ana" O su nombre es "Luis".
- Y ADEMÁS, su edad es mayor a 17 años.
String nombre = "ana"; // Prueba cambiando a "Luis", "Pedro", etc. int edad = 18; // Prueba cambiando a 17, 25, etc. if ((nombre.equalsIgnoreCase("Ana") || nombre.equalsIgnoreCase("Luis")) && (edad > 17)) { // Si el nombre es correcto Y la edad es correcta... System.out.println("✅ Bienvenido/a " + nombre); } else { // Si alguna de las dos condiciones falla... System.out.println("❌ Acceso denegado"); }
Analicemos la condición a fondo:
(nombre.equalsIgnoreCase("Ana") || nombre.equalsIgnoreCase("Luis")) && (edad > 17)
- Los paréntesis
( )
son clave. Como en matemáticas, le dicen a Java qué resolver primero. Aquí, primero se resuelve la condición del nombre. - El bloque del nombre:
(nombre.equalsIgnoreCase("Ana") || nombre.equalsIgnoreCase("Luis"))
. Gracias al||
(O), todo este bloque serátrue
si el nombre es "Ana" o si es "Luis". Si el nombre es "ana", el resultado de este paréntesis estrue
. - El bloque de la edad:
(edad > 17)
. Si la edad es 18, esta condición estrue
. - La unión final
&&
: Java ahora junta los resultados de ambos bloques:(resultado_del_nombre) && (resultado_de_la_edad)
. En nuestro ejemplo, seríatrue && true
, lo que da como resultado finaltrue
. ¡Por eso se permite el acceso!
Desafío Extra: Modifica tu if
para añadir una condición más. Si la edad del usuario es menor a 10 años, debe mostrar un mensaje especial como "¡Eres muy joven para usar esta app!".