Menu
Coddy logo textTech

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

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

Défi

Débutant

Vous aidez une animalerie à créer un système pour déterminer si elle peut vendre un animal à un client.

Initialisez les variables suivantes :

  • hasLicense avec la valeur true
  • hasSpace avec la valeur false
  • hasExperience avec la valeur true

É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'espace
  • canSellExoticPet : Le client a besoin d'une licence ET d'expérience, ET doit avoir de l'espace
  • cannotSellAnyPet : Le client n'a ni licence ni expérience, OU n'a pas d'espace
  • result : canSellRegularPet OU canSellExoticPet OU cannotSellAnyPet

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 équivalentes

Exemple avec OU :

boolean isStudent = false;
boolean isEmployed = false;
boolean result1 = !(isStudent || isEmployed);
boolean result2 = !(isStudent) && !(isEmployed);
// Les deux expressions sont équivalentes

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 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);
    }
}
quiz iconTestez-vous

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