Operadores relacionais e lógicos
Java para Iniciantes (Oracle)
Posted on July 2, 2024
Operador relacional se refere aos relacionamentos que os valores podem ter uns com os outros.
Operador lógico se refere às maneiras como os valores verdadeiro e falso podem estar conectados.
Operadores relacionais produzem resultados verdadeiros ou falsos.
Com frequência, operadores relacionais trabalham com operadores lógicos.
O resultado dos operadores relacionais e lógicos é um valor boolean.
Em Java, todos os objetos podem ser comparados para igualdade ou diferença usando == e !=.
Os operadores de comparação <, >, <= ou >= só podem ser aplicados a tipos com relacionamento sequencial.
Operadores relacionais podem ser aplicados a tipos numéricos e ao tipo char.
Valores de tipo boolean só podem ser comparados quanto à igualdade ou diferença.
Em Java, true > false não tem significado.
Operandos dos operadores lógicos devem ser do tipo boolean gerando um resultado de tipo boolean.
Os operadores lógicos &, |, ^ e ! dão suporte às operações AND, OR, XOR e NOT.
- Como a tabela mostra, o resultado de uma operação exclusive OR é verdadeiro quando exatamente um, e apenas um, operando é verdadeiro.
A saída do programa é dada a seguir:
i < j
i <= j
i != j
!(b1 & b2) is true
b1 | b2 is true
b1 ^ b2 is true
Operadores lógicos de curto-circuito
Java fornece versões de curto-circuito dos operadores lógicos AND e OR para código mais eficiente.
Em uma operação AND, se o primeiro operando for falso, o resultado é falso independente do segundo operando.
Em uma operação OR, se o primeiro operando for verdadeiro, o resultado é verdadeiro independente do segundo operando.
Nesses casos, não é necessário avaliar o segundo operando, economizando tempo e produzindo código mais eficiente.
O operador AND de curto-circuito é && e o operador OR de curto-circuito é ||.
Seus equivalentes comuns são & e |.
A versão comum sempre avalia cada operando, enquanto a versão de curto-circuito só avalia o segundo operando quando necessário.
Exemplo de uso: determinar se d é um fator de n usando && para evitar erro de divisão por zero em uma operação de módulo.
A instrução if primeiro verifica se d é igual a zero para impedir uma divisão por zero.
Se d for zero, o operador AND de curto-circuito interrompe a execução e não realiza a operação de módulo.
No primeiro teste, d é igual a 2 e a operação de módulo é executada.
No segundo teste, d é zero, e a operação de módulo é ignorada, evitando a divisão por zero.
O operador AND comum avalia ambos os operandos, levando a um erro de tempo de execução na divisão por zero.
Os operadores de curto-circuito são formalmente chamados de conditional-or e conditional-and em Java, mas o termo “curto-circuito” é mais usado.
Posted on July 2, 2024
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.
Related
November 29, 2024