Menu
Coddy logo textTech

Logical Operators Part 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 na frente de duas condições unidas por and, você pode dividi-lo em duas partes separadas. O and torna-se 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 é correto: !(A || B) é o mesmo que (!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 um pet shop a criar um sistema para determinar se eles podem vender um animal de estimação para 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 AMBOS, 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 que o requisito descreve, não o valor que a variável por acaso contém. "Must have space" → hasSpace; "has NO space" → !hasSpace. Use ! apenas quando o requisito for o oposto do que o nome da variável afirma, como "has NO license" → !hasLicense.

Experimente você mesmo

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

        // Calcular condições
        boolean canSellRegularPet = 
        boolean canSellExoticPet = 
        boolean cannotSellAnyPet =
        boolean result =

        // Não apague 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