Espressioni booleane
Nell'esempio precedente abbiamo usato come condizione lo stato di un pulsante
(selezionato oppure no) ma questa è soltanto una possibilità.
Possiamo utilizzare una qualsiasi espressione di cui sia possibile
dire se è vera o falsa (attenzione, il "vero/falso" non ha nulla a che fare con il "corretto/sbagliato"):
queste espressioni si chiamano "espressioni booleane"
e in Java e il loro valore può essere soltanto true o false con il significato che
è facile immaginare. Ad esempio l'espressione 4<2
vale false
mentre 3<7
vale true
.
Una espressione booleana si può ottenere sia combinando valori numerici che combinando valori booleani, andiamo avanti con ordine.
Operatori di confronto
Gli operatori di confronto hanno come argomento due valori numerici (ad eccezione di uguale e diverso che operano anche su operandi boolean) e restituiscono come risultato un valore boolean.
- ==
- a == b
a è uguale a b, vale true se a ha lo stesso valore di b - !=
- a != b
a è diverso da b, vale true se a non ha lo stesso valore di b - >
- a > b
a è maggiore di b, vale true se a è maggiore a b - >=
- a >= b
a è maggiore o uguale a b, vale true se a è maggiore o uguale a b - <
- a < b
a è minore di b, vale true se a è minore di b - <=
- a <= b
a è minore o uguale a b, vale true se a è minore o uguale a b
Operatori logici
Servono ad esprimere fatti abbastanza comuni come ad esempio: "un voto è un numero maggiore di zero e minore o uguale a dieci", hanno come operandi dei valori booleani e come risultato un valore booleano.
- ||
- or, "oppure". Vale true se uno dei due operandi è true.
|| true false true true true false true false true || false
valetrue
- &&
- and, "e". Vale true se entrambe i due operandi sono true.
&& true false true true false false false false true && false
valefalse
- !
- not, "non". Inverte il valore di verità che lo segue, lavora su un singolo operando.
! true false false true !true
valefalse
In Java gli operatori logici vengono valutati con una tecnica chiamata "a corto circuito"
o "valutazione minima" che sta a significare che se l'operando sinistro è sufficiente per stabilire il
risultato l'altro non viene neanche valutato. Prendiamo per esempio l'espressione
4==2+2 || 78==12
visto che 4==2+2
è vera e che per l'operatore
or se un operando vale true anche il risultato vale true la parte 78==12
non viene neanche considerata.