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 com NOT nelas. Ao trabalhar com expressões lógicas, às vezes precisamos simplificá-las ou rearranjá-las.
Quando você tem not à frente de duas condições unidas por and, você pode dividi-lo 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:
// Let's check if a number is NOT (between 1 and 10)
int number = 15;
// These two expressions are equivalent:
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:
// Checking if a person is NOT (a student or employed)
boolean isStudent = false;
boolean isEmployed = false;
// These two expressions are equivalent:
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 eles podem vender um animal 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 OU de licença OU de experiência, E deve ter espaçocanSellExoticPet: O cliente precisa de 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: Use os valores das variáveis diretamente em suas expressões. Por exemplo, hasSpace é false, então "deve ter espaço" significa que você usa hasSpace como está (sem !) — a variável já contém o valor real. Use ! apenas quando a condição requer o oposto do que a variável contém, como "não tem licença" → !hasLicense.
Folha de consulta
A Lei de De Morgan ajuda a simplificar expressões lógicas com operadores NOT:
!(A && B) é equivalente a (!A) || (!B)
!(A || B) é equivalente a (!A) && (!B)
Exemplo com AND:
int number = 15;
boolean result1 = !(number >= 1 && number <= 10);
boolean result2 = !(number >= 1) || !(number <= 10);
// Ambas as expressões são equivalentesExemplo com OR:
boolean isStudent = false;
boolean isEmployed = false;
boolean result1 = !(isStudent || isEmployed);
boolean result2 = !(isStudent) && !(isEmployed);
// Ambas as expressões são equivalentesExperimente você mesmo
public class Main {
public static void main(String[] args) {
// Inicializa variáveis
// Calcula 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