Opérateurs logiques, partie 4
Fait partie de la section Fondamentaux du Journey Java de Coddy — leçon 26 sur 73.
La loi de De Morgan est une règle qui nous aide à simplifier les expressions contenant des NON. Lorsque nous travaillons avec des expressions logiques, nous avons parfois besoin de les simplifier ou de les réorganiser.
Quand vous avez not devant deux conditions reliées par and, vous pouvez le diviser en deux parties séparées. Le and devient or, et chaque partie obtient son propre not :
!(A && B) est équivalent à (!A) || (!B)
Par exemple :
// 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); // trueL'inverse est également correct : !(A || B) est équivalent à (!A) && (!B)
Par exemple :
// Vérifier si une personne n'est PAS (étudiante ou employée)
boolean isStudent = false;
boolean isEmployed = false;
// Ces deux expressions sont équivalentes :
boolean result1 = !(isStudent || isEmployed);
boolean result2 = !(isStudent) && !(isEmployed);
System.out.println(result1); // true
System.out.println(result2); // trueDéfi
DébutantVous aidez une animalerie à créer un système pour déterminer si elle peut vendre un animal à un client.
Initialisez les variables suivantes :
hasLicenseavec la valeurtruehasSpaceavec la valeurfalsehasExperienceavec la valeurtrue
Écrivez les expressions logiques suivantes pour déterminer si :
canSellRegularPet: Le client a besoin SOIT d'une licence SOIT d'expérience, ET doit avoir de l'espacecanSellExoticPet: Le client a besoin d'une licence ET d'expérience, ET doit avoir de l'espacecannotSellAnyPet: Le client n'a ni licence ni expérience, OU n'a pas d'espaceresult:canSellRegularPetOUcanSellExoticPetOUcannotSellAnyPet
Conseil : Utilisez les valeurs des variables directement dans vos expressions. Par exemple, hasSpace est false, donc « doit avoir de l'espace » signifie que vous utilisez hasSpace tel quel (sans !) — la variable contient déjà la valeur réelle. Utilisez ! seulement lorsque la condition requiert l'opposé de ce que contient la variable, comme « n'a PAS de licence » → !hasLicense.
Aide-mémoire
La loi de De Morgan permet de simplifier les expressions logiques avec les opérateurs NOT :
!(A && B) est équivalent à (!A) || (!B)
!(A || B) est équivalent à (!A) && (!B)
Exemple avec ET :
int number = 15;
boolean result1 = !(number >= 1 && number <= 10);
boolean result2 = !(number >= 1) || !(number <= 10);
// Les deux expressions sont équivalentesExemple avec OU :
boolean isStudent = false;
boolean isEmployed = false;
boolean result1 = !(isStudent || isEmployed);
boolean result2 = !(isStudent) && !(isEmployed);
// Les deux expressions sont équivalentesEssayez vous-même
public class Main {
public static void main(String[] args) {
// Initialiser les variables
// Calculer les conditions
boolean canSellRegularPet =
boolean canSellExoticPet =
boolean cannotSellAnyPet =
boolean result =
// Ne supprimez pas les lignes ci-dessous
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);
}
}Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Fondamentaux
4Opérateurs - Partie 1
Opérateurs arithmétiquesOpérateur moduloIncrémentation / DécrémentationPost-incrémentation / Post-décrémentationRaccourcis arithmétiquesOpérateurs de comparaisonComparaison de chaînes7Entrées/Sorties de base
Méthodes System.outFormatage de la sortieClasse ScannerRécapitulatif - Jusqu'à 120Récapitulatif - Vrai ou Faux10Méthodes (Fonctions)
Déclaration de méthodesParamètres de méthodeTypes de retourSurcharge de méthodesRécapitulatif - Fonction SigmaRécapitulatif - Fonction de validationMéthodes Void13Opérations sur les chaînes
Méthodes de chaînes, partie 1Méthodes de chaînes, partie 2Formatage de chaînesComparaison de chaînes5Opérateurs, partie 2
Opérateurs logiques, partie 1Opérateurs logiques, partie 2Récapitulatif - Logique simpleOpérateurs logiques, partie 3Opérateurs logiques, partie 43Variables Partie 2
ConstantesConventions de nommageRécapitulatif - Initialisation des variablesType Casting Partie 1Type Casting Partie 26Prise de décision
Instruction IfIf - ElseInstruction SwitchOpérateur ternaireRécapitulatif - If ElseIf - Else imbriqués9Boucles
Boucle For - Partie 1Boucle WhileBoucle Do WhileBreakContinueBoucle For - Partie 2Boucles imbriquéesBoucle infinieRécapitulatif - Entrée dynamique12Parcourir les tableaux
Utilisation de la boucle forBoucle for amélioréeOpérations courantes sur les tableaux