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); // trueO 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); // trueDesafio
InicianteVocê 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:
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 AMBOS, 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 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);
}
}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
4Operators Part 1
Arithmetic OperatorsModulo OperatorIncrement/DecrementPost Increment/DecrementArithmetic ShortcutsComparison OperatorsString Comparison5Operators Part 2
Logical Operators Part 1Logical Operators Part 2Recap - Simple LogicLogical Operators Part 3Logical Operators Part 43Variables Part 2
ConstantsNaming ConventionsRecap - Initialize VariablesType Casting Part 1Type Casting Part 26Decision Making
If StatementIf - ElseSwitch StatementTernary OperatorRecap - If ElseNested If - Else