La palabra "booleano" en el contexto del lenguaje Java se puede usar en significados diferentes, aunque muy relacionados. Podría ser:
  • tipo primitivo booleano o variable booleana de este tipo
  • Clase booleana de Java u objeto contenedor booleano
  • Expresión booleana , valor booleano, alguna condición
  • Operadores booleanos de Java
En este artículo, cubriremos todas estas opciones y explicaremos qué conceptos subyacen a las expresiones booleanas . Java booleano - 1

¿Qué es un booleano en sentido general?

El concepto de expresión booleana proviene de las matemáticas, o mejor dicho, de la lógica matemática. Una expresión booleana en álgebra proposicional es una expresión de la que se puede decir que es verdadera o falsa. Por ejemplo:
“La nieve es blanca” “Los cocodrilos pueden volar” “2 + 2 = 4” “1 + 1 = 21”
Al mismo tiempo, "2" o "nieve" no son expresiones booleanas .

Tipo de datos primitivo booleano de Java y variables booleanas

Hablando de un booleano en Java, primero es muy probable que sea un tipo de datos primitivo booleano y variables booleanas de este tipo. Como probablemente ya hayas adivinado, las variables de este tipo solo pueden tomar dos valores, verdadero y falso. Java tiene restricciones bastante estrictas: un booleano en Java no se puede convertir a ningún otro tipo de datos y viceversa. En particular, boolean en Java no es un tipo integral y no se pueden usar valores enteros en lugar de booleanos. Aquí hay un ejemplo de establecer directamente un tipo booleano :

boolean myBoolean; //boolean variable
myBoolean = false; 
boolean myBoolean1 = true; //another boolean variable
Aquí tenemos 2 variables booleanas . Escribamos un pequeño programa con un ejemplo del uso de un tipo booleano :

//boolean variable example
public class BoolTest {

   public static void main(String[] args) {
       boolean myBoolean = false;
       System.out.println(myBoolean);
   }
}
Este programa imprime "falso" en la consola. Por cierto, una variable booleana se establece en falso de forma predeterminada, pero Java no le permite trabajar con variables locales no inicializadas.

Expresiones booleanas en Java

Además de inicializar explícitamente una variable booleana en verdadero o falso, el tipo de datos booleano se usa implícitamente en muchos lugares. Así como el resultado de cualquier suma de números será un número, el resultado de cualquier comparación será verdadero o falso, es decir, será de tipo booleano . Esto significa que, además de especificar directamente un valor booleano a través de la declaración de asignación de variables booleanas , los valores booleanos resultan de varias comparaciones, como 5 > 2 , y se usan principalmente en declaraciones condicionales y de bucle. Aquí hay un ejemplo de tal uso de tipo booleano :

public class BoolTest {

   public static void main(String[] args) {
       boolean myBoolean = false;
       int a = 5;
       int b = 7;
       System.out.println(a < b);
       System.out.println(0 > 7);
       System.out.println(myBoolean == false);
   }
}
La salida es:
verdadero falso verdadero
En el caso de a < b , el operador < comparó la expresión de la izquierda con la expresión de la derecha. Mostramos el resultado de la comparación en la pantalla. Dado que 5 < 7 (la declaración es verdadera), el valor verdadero se imprimirá en la consola. En el segundo caso, mostramos una comparación directa de cero y siete, y en el tercero, preguntamos si el valor de la variable myBoolean es falso. Dado que este es el caso, generamos el valor true . De hecho, para construir expresiones booleanas en Java, podemos usar cualquier operador de comparación:
operadores de comparación operador Java Ejemplo de operación El resultado de la operación
Menos < un < segundo verdadero si a es menor que b de lo contrario falso
Mayor que > a > b verdadero si a es mayor que b , de lo contrario falso
Menor o igual <= un <= segundo verdadero si a es menor que b o son iguales, de lo contrario falso
Mayor o igual >= un > = segundo verdadero , si a es mayor o igual que b , en caso contrario falso
Igual == un == segundo verdadero , si a es igual a b , de lo contrario falso
No es igual != un != segundo verdadero , si a no es igual a b , de lo contrario falso

Donde se usan valores booleanos

Los valores booleanos y las expresiones condicionales se utilizan con mucha frecuencia en las condiciones de sentencias de bifurcación, operadores ternarios y bucles. De hecho, su uso se basa en comprobar determinadas expresiones booleanas . Por ejemplo:

public class BoolTest2 {
       public static void main(String[] args) {
           int i = 0;
           while (i <= 10)
           {
               System.out.println(i);
               i++;
           }         
      }
}
Este programa imprime una secuencia de números enteros y los incrementa en uno siempre que se cumpla la condición entre paréntesis después del tiempo. Es decir, mientras la expresión i <=10 sea verdadera.

Operadores booleanos de Java. Creación de expresiones booleanas con operadores booleanos

Las siguientes operaciones lógicas (o booleanas) están disponibles en Java:
  • Negación lógica, también es NOT o inversión. En Java, denotado por el símbolo ! antes de la expresión.

  • Y lógico, también es AND o conjunción. Denotado por el símbolo & entre las dos expresiones a las que se aplica.

  • Lógico o en Java, también es OR, también es disyunción. En Java, indicado por el símbolo | entre dos expresiones.

  • Disyunción exclusiva o, XOR, estricta. En Java, se denota con el símbolo ^ entre dos expresiones.

  • En Java, los operadores lógicos incluyen el condicional o, indicado como || , así como el condicional and, && .

Echemos un vistazo a la tabla con una breve descripción de cada uno de los operadores booleanos de Java y, a continuación, los describiremos con más detalle y daremos ejemplos de código. Por "operandos" en la tabla, nos referimos a la expresión lógica o variables a las que se aplica el operador.

a | b == true
Operador booleano de Java Nombre Tipo Descripción Ejemplo
! “No” lógico (negación) unario !x significa “no x”. Devuelve verdadero si x es falso . Devuelve falso si x es verdadero .

boolean x = true;

entonces


// !x == false
& "Y" lógico (y, multiplicación lógica) binario (a & b) devuelve verdadero si tanto a como b son verdaderos .

a = true;
b = false;

entonces


a & b == false
| OR lógico (suma lógica) binario (a | b) devuelve verdadero si a o b o ambos son verdaderos .

a = true;
b = false;

entonces

^ OR exclusivo lógico (XOR) binario (a ^ b) devuelve verdadero , si solo uno de los operandos (a o b) es verdadero . Devuelve falso , si a y b son verdaderos o falsos simultáneamente. De hecho, si a no es igual a b, devuelve verdadero .

a = true;
b = false;

entonces


a ^ b == true
&& AND condicional (AND lógico abreviado) binario a && b Es lo mismo que a & b , pero si a es falso , el operador simplemente devuelve falso sin verificar b .
|| OR condicional (OR lógico abreviado) binario un || b es lo mismo que a | b , pero si a es verdadero , el operador simplemente devuelve verdadero sin verificar b .
Tenga en cuenta que en Java, los operadores & , | y ^ también se aplican a números enteros. En este caso, funcionan un poco diferente y se denominan operadores lógicos bit a bit (o bit a bit). Tomemos un ejemplo y mostremos varias expresiones lógicas compuestas usando operadores lógicos.

public class BoolTest2 {
   public static void main(String[] args) {
   int a = 5;
   int b = 7;
   boolean myBool1 = true;
   boolean myBool2 = false;
       System.out.println(myBool1&myBool2);
       System.out.println(myBool1|myBool2);
       System.out.println(!myBool1);
       System.out.println((a > b) & !myBool1 | myBool2);
   }
}
Aquí está la salida:
falso verdadero falso falso
De hecho, puedes hacer construcciones lógicas muy complejas utilizando operadores lógicos. Por ejemplo
(a<!b)&(q+1 == 12)^(!a | c & b > 1 + b)|(q ^ a > !b)
Si se inicializan todas las variables, tales construcciones funcionarán. Sin embargo, no debes abusar de ellos, dificultan la lectura del código. Sin embargo, es muy útil tratar con tales construcciones lógicas. Intente hacer expresiones lógicas con otros operadores lógicos dados en la tabla.

Precedencia de operaciones lógicas

Al igual que en matemáticas, en programación, los operadores tienen un orden específico de ejecución si ocurren en la misma expresión. Los operadores unarios tienen ventajas sobre los binarios y la multiplicación (incluso la lógica) sobre la suma. Aquí hay operadores lógicos ubicados en la lista de temas más arriba, cuanto mayor sea su prioridad:
  • !

  • &

  • ^

  • |

  • &&

  • ||

Envoltura booleana de Java

En Java, cada tipo primitivo tiene un "hermano", una clase contenedora ( Wrapper ). Un contenedor es una clase especial que almacena el valor de una primitiva en su interior. Sin embargo, esta es una clase, por lo que puede crear instancias (objetos) de ella. Estos objetos almacenan en su interior los valores necesarios de las primitivas, mientras que serán objetos reales. El tipo primitivo booleano de Java tiene una clase contenedora booleana de Java (con B mayúscula). Los objetos de clase booleana se crean como cualquier otro:

Boolean b = new Boolean(false);
La clase booleana de Java tiene métodos útiles. Uno de los más interesantes es el método parseBoolean . El método booleano estático parseBoolean(String s) analiza el argumento de cadena como un booleano. El booleano devuelto representa el valor verdadero si el argumento de cadena no es nulo y es igual, ignorando mayúsculas y minúsculas, a la cadena "verdadero". De lo contrario, devuelve falso .

Ejemplo del método parseBoolean


public class BoolTest2 {

        public static void main(String[] args)
        {
            System.out.println(Boolean.parseBoolean("True"));
            System.out.println(Boolean.parseBoolean("TRuE"));
            System.out.println(Boolean.parseBoolean("False"));
            System.out.println(Boolean.parseBoolean("here"));

        }
    }
La salida es:
verdadero verdadero falso falso
Para reforzar lo que aprendió, le sugerimos que vea una lección en video de nuestro Curso de Java