1. Lógica booleana

Em Java, você não pode escrever a expressão 18 < age <65. Essa é a sintaxe incorreta e o programa não será compilado.

Mas você pode escrever assim:

(18 < age) AND (age < 65)

Claro, em vez da palavra AND, haveria um operador lógico . Falaremos sobre eles com mais detalhes agora.

Existem três operadores lógicos em Java: AND(&&), OR(||) e NOT(!).

A boa notícia é que você pode usar parênteses para construir expressões lógicas de qualquer complexidade.

A má notícia é que os desenvolvedores Java decidiram usar a notação da linguagem C em vez das palavras and, ore not.

Observe a tela:

operador lógico Expectativa Realidade
AND (∧) and &&
OR (∨) or ||
NOT (¬) not !

Aqui estão alguns exemplos de uso de operadores lógicos em Java:

Expressão Interpretação Explicação
(0 < a) && (a < 100)
(0 < a) and (a < 100)
(0 < a) AND (a < 100)
(!a) && (!b)
(not a) and (not b)
(NOT a) AND (NOT b)
!(!a || !b)
not((not a) or (not b))
NOT((NOT a) OR (NOT b))


2. Exemplos de uso de operadores de comparação e variáveis ​​booleanas

Onde quer que você possa escrever uma expressão lógica, você pode escrever uma variável lógica.

Exemplo:

Código Explicação
int age = 35;
if (age >= 18 && age <= 65)
   System.out.println("You can work");
Se o valor da idade estiver entre 18e 65, a frase "Você pode trabalhar" será exibida.
int age = 35;
boolean isYoung = (age < 18);
if (!isYoung && age <= 65)
   System.out.println("You can work");
Criamos uma isYoungvariável e movemos a primeira parte da expressão para ela. Simplesmente substituímos age >= 18por age < 18.
int age = 35;
boolean isYoung = (age < 18);
boolean isOld = (age > 65);
if (!isYoung && !isOld)
   System.out.println("You can work");
Criamos uma variável isOld e movemos a segunda parte da expressão para ela. Além disso, substituímos age <= 65por age > 65.

Esses três exemplos são equivalentes. Somente no segundo exemplo movemos parte da expressão da ifinstrução para uma variável booleana separada ( isYoung). No terceiro exemplo, movemos a segunda parte da expressão para uma segunda variável ( isOld).



3. Aritmética lógica

Vamos passar brevemente pelas operações lógicas.

O ANDoperador é &&, também conhecido como conjunção .

Expressão Resultado
true && true
true
true && false
false
false && true
false
false && false
false

Em outras palavras, o resultado de uma expressão é truesomente se ambos os valores que compõem a expressão forem true. Caso contrário, é sempre false.

O ORoperador é ||, também conhecido como disjunção .

Expressão Resultado
true || true
true
true || false
true
false || true
true
false || false
false

Em outras palavras, o resultado de uma expressão é sempre truese pelo menos um termo na expressão for true. Se ambos forem false, o resultado será false.

O NOToperador é !, também conhecido como inverso lógico .

Expressão Resultado
!true
false
!false
true

O operador muda truepara falsee vice-versa.

Expressões úteis:

Expressão Resultado
m && !m
false
m || !m
true
!(a && b)
!a || !b
!(a || b)
!a && !b