Fala, pessoal! Hoje nós vamos falar sobre os operadores lógicos em Java, um assunto extremamente importante e essencial para todos programadores. Vamos lá?
Primeiramente, para que eles servem? O operador lógico serve para você analisar condições e assim retornar true ou false com base na operação lógica.
Nós temos alguns operadores lógicos no Java, portanto, iremos ver nesse artigo apenas os seguintes operadores:
O operador E representado no Java como “ && ”.
O operador OU representado por “ | “.
E a negação, representado por “ ! “.
Também temos o operador XOR representado pelo “ ^ ”, mas ele já foi abordado em um artigo especificamente dele.
Tabela verdade
Para quem ainda não é familiarizado com esse conceito, primeiramente nós veremos os resultados usando a tabela verdade nos operadores lógicos do Java:
Tabela verdade do “e” representado pelo operador “&&”.
Vamos supor um cenário onde você quer ir passear, mas para ir você precisa estar de folga e ter sol, então o operador && irá comparar se você satisfaz uma condição E também a condição seguinte.
Portanto, nessa tabela verdade nós veremos quais as condicionais e suas respectivas respostas onde a pessoa vai ou não passear.
Relembrando que o operador && só retornará o valor VERDADEIRO se todas as expressões forem verdadeiras, ou seja, se essa condição for verdadeira E essa outra condição também for verdadeira E essa outra também e assim por diante.
Certo, então nisso a gente já entendeu como essa expressão funciona, respeitando a regra do E.
Seguindo esse pensamento vamos para a tabela verdade:
V = Verdadeiro (TRUE)
F = Falso (FALSE)
No caso do operador E, a única vez que o retorno será true será o momento em que TODAS as condições forem verdadeiras, sem exceção alguma. Além disso, também pode haver mais que duas condições encadeadas, como: V && F && V && F && F, quantas fazerem sentido para a lógica necessária.
Vamos ver esse exemplo em código:
Scanner scanner = new Scanner(System.in);
System.out.println("Você está de folga?");
boolean folga = scanner.nextBoolean();
System.out.println("Tem sol?");
boolean temSol = scanner.nextBoolean();
if (temSol && folga) {
System.out.println("irei ir passear hoje!!! =D");
} else{
System.out.println("Não irei passear! =C");
}
//O Retorno só será "irei ir passear hoje!!! =D" se TODAS as condições forem true.
Operador ou “ | “
Esse operador significa o operador lógico referente ao OU, ou seja, para retornar true deve haver alguma condição que retorna true, apenas uma, no mínimo!
Tabela verdade do “OU” representado pelo “||”
Nesse operador, como visto acima, é necessário que apenas uma condição seja verdadeira para que a resposta seja true.
Agora, nós iremos rever o exemplo passado, porém com o operador lógico OU ou (OR), nesse caso irá passear se tiver sol OU se estiver de folga, sendo um deles verdadeiros, o resultado já será verdadeiro, podendo também ter mais de duas condições.
Seguindo esse pensamento vamos para a tabela verdade:
V = Verdadeiro (TRUE)
F = Falso (FALSE)
Exemplo no código usando o mesmo exemplo passado:
Scanner scanner = new Scanner(System.in);
System.out.println("Você está de folga?");
boolean folga = scanner.nextBoolean();
System.out.println("Tem sol?");
boolean temSol = scanner.nextBoolean();
if (temSol || folga) {
System.out.println("irei ir passear hoje!!! =D");
} else{
System.out.println("Não irei passear! =C");
}
//O Retorno será "irei ir passear hoje!!! =D" enquanto tiver alguma condição verdadeira.
Operador de negação representado por “!”
Agora por último mas não menos importante, nós vamos ver o operador de negação representado pelo símbolo de exclamação “!”. Ele faz a reversão dos valores booleanos, ou seja, se um valor for true e você usar negação, ele se transformará em false. Para usar esse operador, devemos botar ele antes da condição da seguinte forma.
boolean negacao = !true; // com negação se torna false!
boolean negacao = !false; // com negação se torna true!
Ou até mesmo diretamente assim:
System.out.println(!false); // TRUE
System.out.println(!true); // FALSE
Portanto, o operador de negação serve para inverter o valor booleano, seja uma expressão ou até mesmo um método que retorne um valor booleano.
Conclusão
Então por hoje é isso, pessoal. Eu espero que tenha conseguido fazer vocês entenderem melhor o conceito de operadores lógicos, um grande abraço e até a próxima!