Menu
Coddy logo textTech

Operatori logici Parte 4

Fa parte della sezione Fondamenti del percorso Java di Coddy. Lezione 26 di 73.

La legge di De Morgan è una regola che ci aiuta a semplificare le espressioni che contengono NOT. Quando lavoriamo con espressioni logiche, a volte dobbiamo semplificarle o riorganizzarle.

Quando hai not davanti a due condizioni unite da and, puoi dividerle in due parti separate. and diventa or e ciascuna parte ha il proprio not:

!(A && B) equivale a (!A) || (!B)

Per esempio:

// Verifichiamo se un numero NON è (compreso tra 1 e 10)
int number = 15;
// Queste due espressioni sono equivalenti:
boolean result1 = !(number >= 1 && number <= 10);
boolean result2 = !(number >= 1) || !(number <= 10);
System.out.println(result1);  // true
System.out.println(result2);  // true

È vero anche il contrario: !(A || B) equivale a (!A) && (!B)

Per esempio:

// Verifica se una persona NON è (uno studente o occupata)
boolean isStudent = false;
boolean isEmployed = false;
// Queste due espressioni sono equivalenti:
boolean result1 = !(isStudent || isEmployed);
boolean result2 = !(isStudent) && !(isEmployed);
System.out.println(result1);  // true
System.out.println(result2);  // true
challenge icon

Sfida

Principiante

Stai aiutando un negozio di animali a creare un sistema per determinare se può vendere un animale a un cliente.

Inizializza le seguenti variabili:

  • hasLicense con il valore true
  • hasSpace con il valore false
  • hasExperience con il valore true

Scrivi le seguenti espressioni logiche per determinare se:

  • canSellRegularPet: il cliente ha bisogno di una licenza OPPURE di esperienza, E deve avere spazio
  • canSellExoticPet: il cliente ha bisogno SIA di una licenza SIA di esperienza, E deve avere spazio
  • cannotSellAnyPet: il cliente NON ha una licenza E NON ha esperienza, OPPURE NON ha spazio
  • result: canSellRegularPet OPPURE canSellExoticPet OPPURE cannotSellAnyPet

Suggerimento: Scrivi la condizione descritta dal requisito, non il valore che la variabile contiene al momento. «Deve avere spazio» → hasSpace; «non ha spazio» → !hasSpace. Usa ! solo quando il requisito è l'opposto di ciò che indica il nome della variabile, come «non ha una licenza» → !hasLicense.

Provalo tu

public class Main {
    public static void main(String[] args) {
        // Inizializza le variabili
        

        // Calcola le condizioni
        boolean canSellRegularPet = 
        boolean canSellExoticPet = 
        boolean cannotSellAnyPet =
        boolean result =

        // Non eliminare le righe qui sotto
        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 iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Fondamenti

Esercitati da solo: Compilatore Java online