Tipos primitivos. Tipo lógico.
Nombre Tamaño en bits Valores Significado
boolean 1 bit true/false Verdadero/Falso
• El tipo boolean se utiliza para a manipular valores lógicos.
• Sólo existen dos literales lógicos: true y false.
• Una expresión lógica o de tipo boolean es cualquier expresión que al evaluarse tiene uno de los dos valores true o false. Se construyen a partir de :
– expresiones numéricas con operadores relacionales (>, <, … ,).
– otras expresiones de tipo lógico con operadores de igualdad y booleanos.
• Los operados relacionales actúan sobre datos numéricos y su resultado es un valor de tipos boolean.
Operador Operación
== Igual
!= Distinto
> Mayor que
>= Mayor o igual que
< Menor que
<= Menor o igual que
• Con operandos de tipos boolean sólo pueden usarse == y !=.
Ejemplos:
int x = 5;
boolean b1 = 6 == x,//false
b2 = x <= 7,//true
b3 = (4 + x) > 10,//false
b4 = 'a' < 'b',//true
b5 = true == false;//false
b3 = 5.5 != 6.3;//true
• Los operadores lógicos realizan operaciones sobre datos de tipo booleany tienen como resultado un valor de tipo boolean:
Operador Operación Significado
! NOT negación lógica
& AND conjunción o `y´ lógico
| OR disyunción o `o´ lógico
^ XOR `o´ exclusivo
&& AND cortocircuitado si el primer operando es false, el segundo ya no se evalúa y el resultado es false
|| OR cortocircuitado Si el primer operando es true, el segundo ya no se evalúa y el resultado es true
• Atención a la diferencia entre un operador y su cortocircuitado:
5<3 && 5/0>2 se evalúa a false, 5<3 & 5/0>2 error de ejecución!!
• Tablas de verdad:
x y x && y x || y x ^ y !x !y
x & y x | y
false false false false false true true
false true false true true true false
true false false true true false true
true true true true false false false
• Ejemplos:
(valor>=15) && (valor<=20) se evalúa a true si valor en [15,20]
(valor>15) || (valor==15) se evalúa a true si valor>=15
(x>=0 && x<5 || x>=10 && x<=20 ) && x%2 != 1
se evalúa a true si x es par y está en [0,5[ U [10,20]
• Atención a la precedencia de los operadores booleanos. Por ejemplo:
5.4<36%30 || 3*4-6<7 && 'a'>='d'
se evalúa a true.
(5.4<36%30 || 3*4-6<7) && 'a'>='d'
se evalúa a false.
• La notación abreviada (por transitividad) para expresiones con operadores relacionales no es correcta en Java. Por ejemplo:
2<x<8 sintácticamente incorrecta: error de compilación
2<x && x<8 sintácticamente correcta
• En Java no hay ninguna compatibilidad entre boolean y los tipos numéricos.
Comentarios
Publicar un comentario