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 estruesolo si ambas partes sontrue.||(OR) → O. La condición estruesi al menos una de las partes estrue.!(NOT) → NO. Simplemente invierte el valor (!truese 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átruesi 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!".
