Menu
Coddy logo textTech

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);  // true

Lo 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);  // true
challenge icon

Desafío

Principiante

Está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:

  • hasLicense con el valor true
  • hasSpace con el valor false
  • hasExperience con el valor true

Escribe las siguientes expresiones lógicas para determinar si:

  • canSellRegularPet: El cliente necesita O BIEN una licencia O experiencia, Y debe tener espacio
  • canSellExoticPet: El cliente necesita TANTO una licencia COMO experiencia, Y debe tener espacio
  • cannotSellAnyPet: El cliente NO tiene licencia Y NO tiene experiencia, O NO tiene espacio
  • result: canSellRegularPet OR canSellExoticPet OR cannotSellAnyPet

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);
    }
}
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Fundamentos