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 con NOT en ellas. 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:
// 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); // trueLo contrario también es correcto: !(A || B) es lo mismo que (!A) && (!B)
Por ejemplo:
// 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); // 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 una licencia O experiencia, Y debe tener espaciocanSellExoticPet: El cliente necesita una licencia Y experiencia, Y debe tener espaciocannotSellAnyPet: El cliente no tiene licencia Y no tiene experiencia, O no tiene espacioresult:canSellRegularPetOcanSellExoticPetOcannotSellAnyPet
Consejo: Usa los valores de las variables directamente en tus expresiones. Por ejemplo, hasSpace es false, así que "debe tener espacio" significa que uses hasSpace tal cual (sin !) — la variable ya contiene el valor real. Usa ! solo cuando la condición requiere el opuesto de lo que contiene la variable, como "no tiene licencia" → !hasLicense.
Hoja de referencia
La Ley de De Morgan ayuda a simplificar expresiones lógicas con operadores NOT:
!(A && B) es equivalente a (!A) || (!B)
!(A || B) es equivalente a (!A) && (!B)
Ejemplo con AND:
int number = 15;
boolean result1 = !(number >= 1 && number <= 10);
boolean result2 = !(number >= 1) || !(number <= 10);
// Ambas expresiones son equivalentesEjemplo con OR:
boolean isStudent = false;
boolean isEmployed = false;
boolean result1 = !(isStudent || isEmployed);
boolean result2 = !(isStudent) && !(isEmployed);
// Ambas expresiones son equivalentesPrué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 eliminar 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