Menu
CoddyTech

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-lo em duas partes separadas. O and se torna or, e cada parte recebe seu próprio not:

!(A && B) é equivalente a (!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 empregado)
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 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 de 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 contém. "Deve ter espaço" → hasSpace; "não tem espaço" → !hasSpace. Use ! somente quando o requisito for o oposto do que o nome da variável indica, como em "não tem licença" → !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 delete 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