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); // trueO 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); // trueDesafio
InicianteVocê 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:
hasLicensecom o valortruehasSpacecom o valorfalsehasExperiencecom o valortrue
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çocanSellExoticPet: o cliente precisa de uma licença E experiência, E deve ter espaçocannotSellAnyPet: o cliente não tem licença E não tem experiência, OU não tem espaçoresult:canSellRegularPetOUcanSellExoticPetOUcannotSellAnyPet
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);
}
}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
4Operadores - Parte 1
Operadores aritméticosOperador móduloIncremento/DecrementoPós-incremento/Pós-decrementoAtalhos aritméticosOperadores de comparaçãoComparação de strings7IO Básico
Métodos System.outFormatação da saídaClasse ScannerRevisão - Até 120Revisão - Verdadeiro ou falso5Operadores — Parte 2
Operadores lógicos — Parte 1Operadores lógicos — Parte 2Revisão — Lógica simplesOperadores lógicos — Parte 3Operadores lógicos — Parte 43Variáveis — Parte 2
ConstantesConvenções de nomenclaturaRecapitulação — Inicializar variáveisConversão de tipos — Parte 1Conversão de tipos — Parte 26Tomada de Decisão
Instrução IfIf - ElseInstrução SwitchOperador TernárioRevisão - If ElseIf - Else AninhadoPratique por conta própria: Compilador de Java online