Blog Formação DEV

Operadores Lógicos Em Java

O domínio de operadores lógicos em qualquer linguagem de programação é crucial, em Java não é diferente. Nesse artigo você aprenderá de uma vez por todas os operadores lógicos com ilustrações e exemplos práticos!
Operadores Lógicos Em Java
Texto de: Geraldo Daros

Introdução

Os operadores lógicos servem para avaliar uma expressão, ou um conjunto de expressões reduzindo-as a um valor verdadeiro ou falso. Esses operadores são muito utilizados para analisar diferentes condições que irão resultar em uma tomada de decisão.

Tipos de operadores

Temos alguns operadores lógicos no Java, veremos nesse artigo os seguintes operadores:

  • Operador E (&&): O operador &&, também chamado de E ou AND avaliará o valor de duas expressões e se as duas forem verdadeiras ele retornará verdadeiro (true), senão, será falso (false).
  • Operador OU (||): O operador ||, também chamado de OU ou OR avaliará o valor de duas expressões e se qualquer uma duas forem verdadeiras ele retornará true, senão, será false.
  • Operador de negação (!): O operador !, também chamado de NÃO ou NOT fará uma negação sobre uma expressão, invertendo o resultado original, então se uma expressão tiver o valor true se usarmos o operador de negação ela se tornará false.

Tabela verdade

Para entender o comportamento dos operadores lógicos em Java, existe um dispositivo fundamental: a tabela verdade. Esse dispositivo é apenas uma tabela onde são anotadas todas as combinações possíveis de entradas booleanas e as saídas geradas por essas entradas. A seguir veremos essas tabelas.

Tabela verdade do operador E (&&)

Suponhamos um cenário onde você quer ir passear, mas para ir você precisa estar de folga e ter sol, então o operador && pode ser usado para avaliar o valor dessas duas condições distintas (estar de folga e ter sol) e retornar um valor que indique se o passeio é ou não possível. Vamos para a tabela verdade:

V = Verdadeiro (TRUE) F = Falso (FALSE)

No caso do operador E, a única vez que o retorno será verdadeiro é quando TODAS as condições forem verdadeiras, sem exceção alguma. Isso quer dizer que a primeira expressão deve ser verdadeira E a seguinte também deve verdadeira E a seguinte também e assim por diante. No exemplo, utilizei apenas duas variáveis para manter a simplicidade, mas podemos encadear quantas expressões fizerem sentido para a lógica necessária.

Vejamos esse exemplo em código:

import java.util.Scanner;

public class OperadorE{

	public static void main(String[] args) {

		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 passear hoje!!! =D");
		} else {
			System.out.println("Não irei passear! =C");
		}

//O Retorno só será "irei passear hoje!!! =D" se TODAS as condições forem true.
	}
} 

Tabela verdade do operador OU (||)

Nesse operador, como visto acima, é necessário que apenas uma das expressões avaliadas seja verdadeira para que o retorno seja true. Agora, nós reveremos o exemplo passado, porém com o operador lógico OU, nesse caso irá passear se tiver sol OU se estiver de folga, sendo um deles verdadeiros, o resultado já será verdadeiro. Seguindo esse pensamento vamos para a tabela verdade:

V = Verdadeiro (TRUE) F = Falso (FALSE)

Exemplo no código usando o mesmo exemplo passado:

import java.util.Scanner;

public class OperadorOU{

	public static void main(String[] args) {

		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 (!)

Agora o operador de negação representado pelo símbolo de exclamação “!”. Ele faz a inversão dos valores booleanos, ou seja, se um valor for true e você usar negação, ele se transformará em false e vice e versa. Para usar esse operador, devemos botar ele antes da expressão que queremos negar da seguinte forma.

boolean negacao = !true; // com negação se torna false! 
boolean negacao = !false; // com negação se torna true! 

O operador ! pode ser utilizado inclusive antes da chamada de métodos, sendo que nesse contexto ele negará o valor retornado pelo método. O código abaixo é um exemplo de como podemos usar o operador de negação em métodos.

public class OperadorNegacao{
    public static void main(String[] args) {
        System.out.println(isPar(2)); // Retorno TRUE
        System.out.println(!isPar(2)); // Retorno FALSE
    }

    public static boolean isPar(int numero) {
        return numero % 2 == 0;
    }
} 

Conclusão

Em resumo, os operadores lógicos desempenham um papel crucial na programação, sendo ferramentas essenciais para construir lógica e controle de fluxo em nossos programas. Dominar o uso dos operadores lógicos é fundamental para desenvolver código eficiente e preciso, capacitando os programadores a tomar decisões complexas e criar algoritmos robustos.

Sobre o autor
Cod3r

Cod3r

Com mais de 400 mil alunos, a Cod3r é uma das principais escolas de tecnologia do País. Um de seus produtos mais importantes é a Formação DEV, com objetivo de preparar os profissionais para o mercado.

Ótimo! Inscreveu-se com sucesso.

Bem-vindo de volta! Registou-se com sucesso.

Assinou com sucesso o Blog Formação DEV .

Sucesso! Verifique o seu e-mail para obter o link mágico para se inscrever.

As suas informações de pagamento foram atualizadas.

Seu pagamento não foi atualizado.