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

L'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);  // 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 de SOIT une licence OU de l'expérience, ET doit avoir de l'espace
  • canSellExoticPet : Le client a besoin à la fois d'une licence ET d'expérience, ET doit avoir de l'espace
  • cannotSellAnyPet : Le client n'a AUCUNE licence ET AUCUNE expérience, OU n'a AUCUN espace
  • result : canSellRegularPet OU canSellExoticPet OU cannotSellAnyPet

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);
    }
}
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