Gli operatori logici in Java

In Java, gli operatori logici sono usati per combinare espressioni booleane, quelle che possono essere vere o false. Ecco i principali operatori logici:

Operatore Descrizione Esempio
&& AND logico a && b
|| OR logico a || b
! NOT logico !a

Con questi strumenti, puoi gestire quasi ogni situazione logica nel tuo programma.

Vediamo come ciascuno di essi funziona nel mondo Java.

A cosa servono? Immagina di essere in un mondo fatto di "vero" e "falso". Questa è la realtà in cui vivono i computer: un luogo di bit, un mondo "binario" dove ogni decisione si riduce a due semplici valori. In Java e nella maggior parte dei linguaggi di programmazione, usiamo questi valori – vero (`true`) e falso (`false`) – per prendere decisioni.

Operatore `&&` (AND Logico)

L'operatore `&&` (AND Logico) verifica due condizioni e verifica vero solo se tutte sono vere.

Entrambe le cose devono essere vere perché l'intera espressione sia vera.

Ad esempio, immagina di voler uscire per una passeggiata: uscirai solo se:

  • Il tempo è bello
  • Hai abbastanza tempo libero.

Se entrambe le condizioni sono vere, allora uscirai. In Java, questa situazione può essere rappresentata così:

boolean isSunny = true;
boolean hasFreeTime = true;

if (isSunny && hasFreeTime) {
    System.out.println("Andiamo a fare una passeggiata!");
} else {
    System.out.println("Non possiamo andare a fare una passeggiata.");
}

L'operatore `&&` controlla se entrambe le condizioni (`isSunny` e `hasFreeTime`) sono vere.

In questo caso sono entrambe vere (true).

Andiamo a fare una passeggiata!

Se anche solo una di esse è falsa, il risultato sarà falso e il messaggio sarà "Non possiamo andare a fare una passeggiata."

Operatore `||` (OR Logico)

L'operatore `||` (OR Logico) verifica due condizioni e verifica vero se almeno una condizione è vera. Quindi, è più permissivo.

Torniamo al nostro esempio della passeggiata. Ora, sei disposto a uscire se:

  • Il tempo è bello OPPURE
  • Hai voglia di fare una passeggiata (anche se non è bello fuori).

Ecco come tradurlo in Java:

boolean isSunny = false;
boolean wantsToWalk = true;

if (isSunny || wantsToWalk) {
    System.out.println("Andiamo a fare una passeggiata!");
} else {
    System.out.println("Rimaniamo a casa.");
}

L'operatore `||` verifica se almeno una delle condizioni (`isSunny` o `wantsToWalk`) è vera.

In questo caso, poiché `wantsToWalk` è vero, il risultato complessivo è vero e verrà stampato "Andiamo a fare una passeggiata!"

Andiamo a fare una passeggiata!

Quando, invece, entrambe sono false, il codice stamperà "Rimaniamo a casa"

Operatore `!` (NOT Logico)

L'operatore `!` (NOT Logico) inverte il valore di una condizione.  In altre parole, rovescia il valore di una condizione: se è vero, lo trasforma in falso, e viceversa.

Immagina di voler uscire solo se non piove. Questa situazione si può rappresentare così:

boolean isRaining = false;

if (!isRaining) {
    System.out.println("Andiamo a fare una passeggiata!");
} else {
    System.out.println("Meglio restare al coperto.");
}

La condizione `!isRaining` è inizialmente falsa, significa "non sta piovendo".

Tuttavia, viene invertita dall'operatore NOT (!isRaising). Quindi, `!isRaining` diventa vero e il programma dice che puoi andare a fare una passeggiata.

Andiamo a fare una passeggiata!

La composizione degli operatori logici

Gli operatori logici possono essere combinati per creare condizioni più complesse.

Supponiamo che tu voglia uscire solo se:

  • Il tempo è bello E hai tempo libero, O il tempo è brutto ma vuoi comunque uscire.

In Java, questo si traduce così:

boolean isSunny = true;
boolean hasFreeTime = false;
boolean wantsToWalk = true;

if ((isSunny && hasFreeTime) || (!isSunny && wantsToWalk)) {
    System.out.println("Andiamo a fare una passeggiata!");
} else {
    System.out.println("Meglio restare a casa.");
}

In questo caso abbiamo combinato gli operatori logici per coprire diverse situazioni.

Le parentesi sono importanti qui, proprio come in matematica, perché indicano quali condizioni devono essere valutate prima.

Attenzione ai Cortocircuiti!

In Java, gli operatori `&&` e `||` creano un "cortocircuito".

Questo significa che l'operazione si interrompe non appena il risultato è noto.

Per esempio, nell'operatore `&&`, se la prima condizione è falsa, Java non controllerà nemmeno la seconda perché l'intera espressione sarà comunque falsa. Allo stesso modo, con `||`, se la prima condizione è vera, Java non controllerà la seconda.

Ad esempio, scrivi questo codice:

boolean isSunny = false;
boolean hasFreeTime = true;

if (isSunny && (hasFreeTime = false)) {
    System.out.println("Andiamo a fare una passeggiata!");
}
System.out.println("Tempo libero: " + hasFreeTime);

Anche se il codice assegna `false` a `hasFreeTime` nella seconda condizione, questa non viene mai valutata perché la prima (`isSunny`) è già falsa.

Quindi `hasFreeTime` rimane vero, dimostrando il cortocircuito dell'operatore `&&`.

 
 

Segnalami un errore, un refuso o un suggerimento per migliorare gli appunti

FacebookTwitterLinkedinLinkedin

Il linguaggio Java