# Gli operatori Java AND e OR: come funzionano

Gli operatori logici AND e OR in Java servono a verificare la correttezza di due requisiti. Entrambe le funzioni si comportano in modo simile, ma differiscono per alcuni dettagli. Ti spieghiamo il funzionamento degli operatori OR e AND in Java con alcuni semplici esempi.

## AND e OR in Java

Gli [operatori Java](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/operatori-java/) sono uno strumento importante per lavorare con questo [linguaggio di programmazione](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/linguaggi-programmazione-web/). Esistono diverse categorie di operatori, che permettono di svolgere compiti diversi. Due strumenti che ti saranno particolarmente utili per [imparare a programmare](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/imparare-a-programmare-iniziare-dalle-basi/) in Java sono AND e OR. Entrambi rientrano nella categoria degli operatori e sono utilizzati per verificare la **correttezza di uno stato ipotetico**. A tal fine danno **come risposta un valore booleano**. Il valore è “true” se l’espressione è corretta oppure “false” se è errata.

L’operatore AND in Java esamina due stati ed emette il valore “true” solo se **entrambe le espressioni sono corrette**. In caso contrario, la risposta è “false”. Per esprimere questo operatore si utilizza la dicitura “&amp;&amp;”. Anche l’operatore OR in Java esamina due stati ed emette il valore “true”, ma a condizione che **almeno una delle due espressioni sia corretta**. Solo se entrambe le espressioni sono errate la risposta è “false”. Per indicare questo operatore si utilizza la dicitura “||”.

La sintassi dei due operatori è molto simile e si presenta così:

```java
espressione1 operatore espressione2
```

Nelle parti seguenti ti spieghiamo come utilizzare gli operatori AND e OR in Java con alcuni esempi pratici.

## L’operatore AND in Java

In Java, l’operatore AND serve a controllare se due espressioni sono vere. La struttura è la seguente:

```java
espressione1 && espressione2
```

Solo se entrambi i requisiti sono veri si ottiene la risposta “true”. Se una delle due espressioni è falsa o se entrambe non sono vere, la risposta dell’operatore è “false”.

Nel nostro primo esempio forniamo al sistema due semplici espressioni e utilizziamo il [comando Java](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/comandi-java/) `System.out.println` per ordinare al sistema di emettere il valore booleano corrispondente. Il comando si presenta così:

```java
public class Main {
	public static void main(String[] args) {
		int x = 3;
		System.out.println(x > 1 && x < 7);
	}
}
```

Per prima cosa, il sistema controlla se il valore 3 è maggiore di 1. Essendo vero, il sistema verifica quindi la correttezza dell’espressione “3 &lt; 7”. Anche questo è vero, quindi entrambe le espressioni sono corrette e otteniamo il risultato “true”.

A questo punto possiamo vedere cosa succede se una delle espressioni è vera e l’altra no. A tal fine modifichiamo leggermente il nostro esempio:

```java
public class Main {
	public static void main(String [] args) {
		int x = 3;
		System.out.println(x > 1 && x > 7);
	}
}
```

Anche in questo caso il sistema controlla la prima espressione e stabilisce che è corretta. La seconda espressione, invece, non lo è. Poiché entrambi i requisiti devono essere soddisfatti, il risultato è “false”.

Nel nostro terzo esempio, la verifica è ancora più breve. Poiché già il primo requisito non è soddisfatto, il sistema non prende neppure in considerazione il secondo dato. Infatti, il valore può essere soltanto “false”:

```java
public class Main {
	public static void main(String [] args) {
		int x = 3;
		System.out.println(x > 3 && x < 7);
	}
}
```

## L’operatore OR in Java

Anche l’operatore OR in Java serve a controllare due requisiti. La sua struttura è la seguente:

```java
espressione1 || espressione2
```

Al contrario dell’operatore AND in Java, per l’operatore OR è fondamentale che almeno uno dei due requisiti sia soddisfatto. In questo caso il risultato è la risposta “true”. La stessa risposta si ottiene anche quando entrambi i requisiti sono soddisfatti. L’operatore risponde con “false” solo se **nessuno dei due requisiti è vero**. A seguire trovi alcuni semplici esempi per capire meglio il funzionamento.

Nel primo caso, cambiamo semplicemente l’operatore `&&` usato nel primo esempio sostituendolo con `||`. L’esempio si presenta quindi così:

```java
public class Main {
	public static void main(String [] args) {
		int x = 3;
		System.out.println(x > 1 || x < 7);
	}
}
```

Come con l’operatore AND, in questo caso il risultato è “true”. Poiché già la prima espressione è vera, il requisito è soddisfatto. Le differenze fra AND e OR in Java diventano più chiare osservando l’esempio seguente.

```java
public class Main {
	public static void main(String [] args) {
		int x = 3;
		System.out.println(x > 1 || x > 7);
	}
}
```

La prima espressione indicata è vera, perché 3 è effettivamente maggiore di 1. La seconda espressione invece non è vera, perché 3 non è maggiore di 7. Tuttavia, poiché almeno una delle due espressioni è vera, il sistema risponde comunque con “true”. L’affermazione errata nella seconda espressione non è rilevante.

Il sistema dà la risposta “false” soltanto se nessuno dei due requisiti è soddisfatto. L’esempio seguente descrive questa situazione:

```java
public class Main {
	public static void main(String [] args) {
		int x = 3;
		System.out.println(x > 3 || x > 7);
	}
}
```

Il sistema controlla la prima espressione e stabilisce che è falsa. Quindi prende in considerazione la seconda espressione. Se fosse corretta, la risposta sarebbe nuovamente “true”. Tuttavia, poiché entrambe le espressioni sono false, la risposta che otteniamo è “false”.


This is a markdown version of: [https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/operatori-java-and-e-or/](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/operatori-java-and-e-or/) for AI/LLM consumption.