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 l'opérateur NOT. Lorsque nous travaillons avec des expressions logiques, nous avons parfois besoin de les simplifier ou de les réorganiser.
Lorsque vous avez not devant deux conditions jointes par and, vous pouvez le diviser en deux parties distinctes. Le and devient or, et chaque partie reçoit son propre not :
!(A && B) est identique à (!A) || (!B)
Par exemple :
// Vérifions si un nombre n'est PAS (entre 1 et 10)
int number = 15;
// Ces deux expressions sont équivalentes :
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 vrai : !(A || B) est identique à (!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 de SOIT une licence OU de l'expérience, ET doit avoir de l'espacecanSellExoticPet: Le client a besoin à la fois d'une licence ET d'expérience, ET doit avoir de l'espacecannotSellAnyPet: Le client n'a AUCUNE licence ET AUCUNE expérience, OU n'a AUCUN espaceresult:canSellRegularPetOUcanSellExoticPetOUcannotSellAnyPet
Conseil : Écrivez la condition décrite par l'exigence, et non la valeur que la variable contient par hasard. "Must have space" → hasSpace ; "has NO space" → !hasSpace. Utilisez ! uniquement lorsque l'exigence est l'opposé de ce que le nom de la variable indique, comme "has NO license" → !hasLicense.
Essayez 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 pas supprimer 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