Logical Operators Part 4
Parte de la sección Fundamentos del Journey de Java de Coddy — lección 26 de 73.
La ley de De Morgan es una regla que nos ayuda a simplificar expresiones que contienen NOT. Al trabajar con expresiones lógicas, a veces necesitamos simplificarlas o reorganizarlas.
Cuando tienes not delante de dos condiciones unidas por and, puedes dividirlo en dos partes separadas. El and se convierte en or, y cada parte obtiene su propio not:
!(A && B) es lo mismo que (!A) || (!B)
Por ejemplo:
// Vamos a comprobar si un número NO está (entre 1 y 10)
int number = 15;
// Estas dos expresiones son equivalentes:
boolean result1 = !(number >= 1 && number <= 10);
boolean result2 = !(number >= 1) || !(number <= 10);
System.out.println(result1); // true
System.out.println(result2); // trueLo opuesto también es correcto: !(A || B) es lo mismo que (!A) && (!B)
Por ejemplo:
// Comprobando si una persona NO es (estudiante o empleada)
boolean isStudent = false;
boolean isEmployed = false;
// Estas dos expresiones son equivalentes:
boolean result1 = !(isStudent || isEmployed);
boolean result2 = !(isStudent) && !(isEmployed);
System.out.println(result1); // true
System.out.println(result2); // trueDesafío
PrincipianteEstás ayudando a una tienda de mascotas a crear un sistema para determinar si pueden vender una mascota a un cliente.
Inicializa las siguientes variables:
hasLicensecon el valortruehasSpacecon el valorfalsehasExperiencecon el valortrue
Escribe las siguientes expresiones lógicas para determinar si:
canSellRegularPet: El cliente necesita O BIEN una licencia O experiencia, Y debe tener espaciocanSellExoticPet: El cliente necesita TANTO una licencia COMO experiencia, Y debe tener espaciocannotSellAnyPet: El cliente NO tiene licencia Y NO tiene experiencia, O NO tiene espacioresult:canSellRegularPetORcanSellExoticPetORcannotSellAnyPet
Consejo: Escribe la condición que describe el requisito, no el valor que la variable tiene en ese momento. "Debe tener espacio" → hasSpace; "NO tiene espacio" → !hasSpace. Usa ! solo cuando el requisito sea lo opuesto a lo que indica el nombre de la variable, como por ejemplo "NO tiene licencia" → !hasLicense.
Pruébalo tú mismo
public class Main {
public static void main(String[] args) {
// Inicializar variables
// Calcular condiciones
boolean canSellRegularPet =
boolean canSellExoticPet =
boolean cannotSellAnyPet =
boolean result =
// No elimines las líneas de abajo
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 lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones 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