1. Tipo de dado lógico: boolean
Como já vimos, em Java há um operador muito útil — if-else. Ele executa um bloco de comandos se a condição entre parênteses for verdadeira e outro bloco de comandos se a condição for falsa.
Para trabalhar de forma conveniente com expressões que podem ser verdadeiras ou falsas, o Java possui um tipo especial — boolean. Sua principal característica é que variáveis desse tipo podem assumir apenas dois valores: true (verdadeiro) e false (falso).
Não é possível atribuir quaisquer outros valores a variáveis do tipo boolean. O compilador não permitirá.
Exemplos de variáveis do tipo boolean:
boolean isAdult = true;
boolean hasMoney = false;
Uma variável do tipo boolean tem apenas dois valores — true e false. Só isso! Quase como em um teste bem-sucedido — ou “passou”, ou “falhou”.
2. Operações de comparação
E para que serve um tipo tão simples? O verdadeiro poder do boolean aparece quando construímos expressões lógicas. Normalmente elas surgem com a ajuda dos operadores de comparação.
| Operador | Finalidade | Exemplo | Valor |
|---|---|---|---|
| == | Igual | |
true ou false |
| != | Diferente | |
true ou false |
| > | Maior | |
true ou false |
| < | Menor | |
true ou false |
| >= | Maior ou igual | |
true ou false |
| <= | Menor ou igual | |
true ou false |
Exemplo:
int age = 20;
boolean isAdult = age >= 18; // true (20 é maior ou igual a 18)
boolean isTeenager = age >= 13 && age < 18; // false (20 não é menor que 18)
boolean isEven = age % 2 == 0; // true (20 é divisível por 2 sem resto)
isAdult aqui se tornará true, porque 20 é de fato uma idade “adulta”.
Ponto importante 1:
Operadores compostos por dois símbolos não podem ser separados.
a < = 10
speed > = max
age = = 18
time ! = 0
Ponto importante 2:
Observe que não existem os operadores => e =<: existem apenas <= e >=. Se você escrever a =< 3, seu código simplesmente não vai compilar.
Ponto importante 3:
Em Java você não pode escrever uma expressão do tipo 18 < age < 65. Afinal, a expressão 18 < age terá valor true ou false. E comparar true com um número (65) não é possível — são tipos diferentes.
3. Operações lógicas
Na linguagem Java não é possível escrever a expressão 18 < age < 65 — ela é sintaticamente incorreta e o programa não compilará.
Mas você pode escrevê-la assim:
(18 < age) I (age < 65)
Claro, em vez da palavra E utilizam‑se operadores lógicos. Em Java há três operadores lógicos: AND (e), OR (ou) e NOT (não).
Boa notícia: usando parênteses, você pode construir expressões lógicas de qualquer complexidade.
Má notícia: em Java, no lugar das palavras and, or e not, usam‑se símbolos da família C: &&, ||, !.
| Operador lógico | Expectativa | Realidade |
|---|---|---|
| E (∧) | and | && |
| OU (∨) | or | || |
| NÃO (¬) | not | ! |
Aqui estão alguns exemplos de uso dos operadores lógicos em Java:
| Expressão | Leitura | Explicação |
|---|---|---|
|
(0 < a) e (a < 100) | (0 < a) E (a < 100) |
|
(não a) e (não b) | (NÃO a) E (NÃO b) |
|
não((não a) ou (não b)) | NÃO((NÃO a) OU (NÃO b)) |
4. Tabelas-verdade
Vamos passar rapidamente pelas operações lógicas.
Operador AND
O operador AND, também conhecido como E, &&, conjunção, multiplicação lógica.
| Expressão | Resultado |
|---|---|
| true && true | true |
| true && false | false |
| false && true | false |
| false && false | false |
Operador OR
O operador OR, também conhecido como OU, ||, disjunção, soma lógica.
| Expressão | Resultado |
|---|---|
| true || true | true |
| true || false | true |
| false || true | true |
| false || false | false |
Operador NOT
O operador NOT, também conhecido como NÃO, !, inversão.
| Expressão | Resultado |
|---|---|
| ! true | false |
| ! false | true |
Expressões úteis:
| Expressão | Resultado |
|---|---|
| m && !m | false |
| m || !m | true |
| !(a && b) | !a || !b |
| !(a || b) | !a && !b |
5. Exemplos de operações lógicas: and, or, not
A operação “E”, AND, é representada por &&
O resultado é verdadeiro somente quando ambas as variáveis são verdadeiras.
int age = 16;
boolean hasTicket = true;
boolean canAttend = age >= 14 && hasTicket; // true (16 é maior que 14 E tem ingresso)
Se você tem 14 anos E tem ingresso — pode entrar!
A operação “OU”, OR, é representada por (||)
O resultado é verdadeiro se ao menos uma condição for verdadeira.
boolean isAdmin = false;
boolean isModerator = true;
boolean canEdit = isAdmin || isModerator; // true (pode editar se pelo menos uma dessas for true)
Se você é admin OU moderador — fique à vontade para clicar nos botões!
A operação “NÃO”, NOT, é representada por (!)
O operador de negação transforma verdadeiro em falso e vice‑versa.
boolean isWeekend = false;
boolean shouldGoToWork = !isWeekend; // true (se não for fim de semana, trabalhamos)
Se NÃO for fim de semana — é hora de levantar!
Combinação: construa condições da complexidade que quiser
Você pode combinar quantas operações lógicas quiser (de preferência sem exagerar). Parênteses podem (e devem!) ser usados para clareza.
Exemplo:
int age = 17;
boolean hasTicket = false;
boolean isVip = true;
boolean canGo = (age >= 18 && hasTicket) || isVip; // true, porque isVip = true
Lógica: se a pessoa for maior de idade e tiver ingresso, ou se for VIP — deixamos passar. Se não for VIP — somente se for adulta e tiver ingresso.
GO TO FULL VERSION