CodeGym /Cursos /JAVA 25 SELF /Tipo lógico boolean e operações lógicas

Tipo lógico boolean e operações lógicas

JAVA 25 SELF
Nível 3 , Lição 3
Disponível

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;
Exemplo de declaração de variáveis do tipo boolean

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
a == b
true ou false
!= Diferente
a != b
true ou false
> Maior
a > b
true ou false
< Menor
a < b
true ou false
>= Maior ou igual
a >= b
true ou false
<= Menor ou igual
a <= b
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
Não se deve escrever assim! Os operadores devem ser juntos: <=, >=, ==, !=

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)
Expressão lógica com duas condições (em russo)

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) && (a < 100)
(0 < a) e (a < 100) (0 < a) E (a < 100)
(!a) && (!b)
(não a) e (não b) (NÃO a) E (NÃO b)
!(!a || !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.

Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION