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 qui contiennent NOT. Lorsque nous travaillons avec des expressions logiques, nous devons parfois les simplifier ou les réorganiser.

Lorsque not se trouve devant deux conditions reliées par and, tu peux le répartir en deux parties distinctes. Le and devient or, et chaque partie reçoit son propre not :

!(A && B) est équivalent à (!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 correct : !(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 permettant de 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 À LA FOIS 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 : Écrivez la condition décrite par l'exigence, et non la valeur que la variable contient actuellement. "Must have space" → hasSpace ; "has NO space" → !hasSpace. Utilisez ! uniquement lorsque l'exigence est l'opposé de ce qu'indique le nom de la variable, 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

Entraînez-vous par vous-même : Compilateur Java en ligne