Menu
Coddy logo textTech

Operadores lógicos — Parte 4

Parte da seção Fundamentos do Journey de Java da Coddy. Lição 26 de 73.

A Lei de De Morgan é uma regra que nos ajuda a simplificar expressões que contêm NOT. Ao trabalhar com expressões lógicas, às vezes precisamos simplificá-las ou reorganizá-las.

Quando você tem not antes de duas condições unidas por and, pode dividi-la em duas partes separadas. O and se torna or, e cada parte recebe seu próprio not:

!(A && B) é o mesmo que (!A) || (!B)

Por exemplo:

// Vamos verificar se um número NÃO está (entre 1 e 10)
int number = 15;

// Estas duas expressões são equivalentes:
boolean result1 = !(number >= 1 && number <= 10);
boolean result2 = !(number >= 1) || !(number <= 10);

System.out.println(result1);  // true
System.out.println(result2);  // true

O oposto também está correto: !(A || B) é igual a (!A) && (!B)

Por exemplo:

// Verificando se uma pessoa NÃO é (estudante ou empregada)
boolean isStudent = false;
boolean isEmployed = false;

// Estas duas expressões são equivalentes:
boolean result1 = !(isStudent || isEmployed);
boolean result2 = !(isStudent) && !(isEmployed);

System.out.println(result1);  // true
System.out.println(result2);  // true
challenge icon

Desafio

Iniciante

Você está ajudando uma loja de animais a criar um sistema para determinar se ela pode vender um animal de estimação a um cliente.

Inicialize as seguintes variáveis:

  • hasLicense com o valor true
  • hasSpace com o valor false
  • hasExperience com o valor true

Escreva as seguintes expressões lógicas para determinar se:

  • canSellRegularPet: o cliente precisa de uma licença OU experiência, E deve ter espaço
  • canSellExoticPet: o cliente precisa de uma licença E experiência, E deve ter espaço
  • cannotSellAnyPet: o cliente não tem licença E não tem experiência, OU não tem espaço
  • result: canSellRegularPet OU canSellExoticPet OU cannotSellAnyPet

Dica: Escreva a condição descrita pelo requisito, não o valor que a variável por acaso possui. "Must have space" → hasSpace; "has NO space" → !hasSpace. Use ! somente quando o requisito for o oposto do que o nome da variável afirma, como em "has NO license" → !hasLicense.

Experimente você mesmo

public class Main {
    public static void main(String[] args) {
        // Inicialize as variáveis
        

        // Calcule as condições
        boolean canSellRegularPet = 
        boolean canSellExoticPet = 
        boolean cannotSellAnyPet =
        boolean result =

        // Não exclua as linhas abaixo
        System.out.println("Can sell regular pet: " + canSellRegularPet);
        System.out.println("Can sell exotic pet: " + canSellExoticPet);
        System.out.println("Cannot sell any pet: " + cannotSellAnyPet);
        System.out.println("Result: " + result);
    }
}
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Fundamentos

Pratique por conta própria: Compilador de Java online