Operadores lógicos, parte 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:
// Comprobemos 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 contrario 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 puede 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: Escribe la condición que describe el requisito, no el valor que resulta tener la variable. "Must have space" → hasSpace; "has NO space" → !hasSpace. Usa ! solo cuando el requisito sea lo opuesto de lo que indica el nombre de la variable, como "has NO license" → !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
4Operadores, parte 1
Operadores aritméticosOperador móduloIncremento/decrementoIncremento/decremento posteriorAtajos aritméticosOperadores de comparaciónComparación de cadenas7Entrada y salida básicas
Métodos de System.outFormato de salidaClase ScannerRepaso: hasta 120Repaso: verdadero o falso10Métodos (Funciones)
Declaración de métodosParámetros de métodosTipos de retornoSobrecarga de métodosRepaso: función SigmaRepaso: función de validaciónMétodos void13Operaciones con cadenas
Métodos de cadenas, parte 1Métodos de cadenas, parte 2Formato de cadenasComparación de cadenas5Operadores, parte 2
Operadores lógicos, parte 1Operadores lógicos, parte 2Repaso: lógica simpleOperadores lógicos, parte 3Operadores lógicos, parte 48Aplicación de calculadora
Mensaje de bienvenidaObtención de números3Variables Parte 2
ConstantesConvenciones de nomenclaturaRepaso: inicializar variablesConversión de tipos Parte 1Conversión de tipos Parte 26Toma de decisiones
Sentencia IfIf - ElseSentencia SwitchOperador ternarioRepaso - If ElseIf - Else anidadoPractica por tu cuenta: Compilador de Java online