Un operatore è un carattere che rappresenta un'azione. Per esempio, il carattere +
rappresenta l'operazione aritmetica dell'addizione.
- Operatori aritmetici di base
- Operatori di assegnazione
- Operatori di incremento e decremento automatico
- Operatori logici
- Operatori di confronto (relazionali)
- Operatori bitwise (bit a bit)
- Operatore ternario
Operatori aritmetici di base in Java
In Java abbiamo sono presenti i classici operatori aritmetici con le operazioni di base:
Operatore | Descrizione | Espressione |
+ | Addizione | x + y |
- | Sottrazione | x - y |
* | Moltiplicazione | x * y |
/ | Divisione | x / y |
% | Modulo* | x % y |
int num1 = 20;
int num2 = 5;
System.out.println(num1 + num2);
System.out.println(num1 - num2);
System.out.println(num1 * num2);
System.out.println(num1 / num2);
System.out.println(num1 % num2);
Bisogna comunque ricordarsi che le operazioni sono tipate, quindi, per esempio, sommando due interi otterremo un intero, questo per prevedere il tipo del risultato di una certa operazione.
A questo proposito è necessario tenere presente anche che in Java, una divisione tra numeri interi restituirà un intero, quindi, per ottenere il reale risultato della divisione, sarà necessario rendere i due numeri reali.
float risultato = (float) num1 / (float) num2;
Operatori di Assegnazione in Java
L'operatore di assegnazione di base in Java è = (uguale), necessario per assegnare ad una variabile un determinato valore.
Ci sono poi gli operatori abbreviati, per esempio, utilizzando +=
possiamo aumentare il valore di una variabile senza doverla riscrivere, ma ne esiste uno per ogni operatore aritmetico come potete venere nella tabella:
Operatore | Descrizione | Espressione |
= | Assegna alla variabile espressa a sinistra dell'uguale il valore espresso a destra dell'uguale. | y = x |
+= | Operatore abbreviato di addizione | y += x equivale a y = y + x |
-= | Operatore abbreviato di sottrazione | y -= x equivale ay = y - x |
*= | Operatore abbreviato di moltiplicazione | y *= x equivale a y = y * x |
/= | Operatore abbreviato di divisione | y /= x equivale a y = y / x |
%= | Operatore abbreviato di modulo | y %= x equivale a y = y % x |
Operatori di Incremento e Decremento in Java
Tra gli operatori abbreviati, troviamo anche altri quattro operatori: due di incremento delle variabili e due di decremento
Operatore | Descrizione |
x++ | Valuta x e poi incrementa x di 1 |
x-- | Valuta x e poi decrementa x di 1 |
++x | Incrementa x di 1 e poi valuta x |
--x | Decrementa x di 1 e poi valuta x |
Come potete notare dalla tabella, esistono due versioni di ogni operatore: con il segno prima o dopo la variabile, questo perché, oltre a incrementare o decrementare la variabile, questi operatori restituiscono anche un risultato, e in questo secondo compito la posizione dell'operatore cambia!
- Se l'operatore precede la variabile, l'espressione restituisce il valore della variabile già modificato.
- Se l'operatore segue la variabile, l'epsressione restituisce il valore attuale della variabile prima della modifica.
int numero = 3;
System.out.println(++numero); // 4
System.out.println(numero); // 4
int numero = 3;
System.out.println(numero++); // 3
System.out.println(numero); // 4
Operatori Logici in Java
Gli operatori logici in Java ci permettono di definire espressioni booleane per mettere in relazione il verificarsi di più condizioni. Considerando x
e y
come due valori booleani, osserviamo la seguente tabella:
Operatore | Descrizione | Espressione | Restituisce |
&& | AND | x && y | true se x e y sono entrambe vere, false se almeno una delle due è falsa. |
|| | OR | x || y | true se almeno una delle due variabili x e y è vera, false se entrambe sono false. |
! | NOT | !x | Restituisce l'opposto di x , quindi true se x è falsa oppure false se x è vera |
Operatori di Confronto in Java
In Java abbiamo a disposizione sei operatori di confronto (o relazionali) utilizzati per paragonare due variabili.
Operatore | Descrizione | Espressione | Restituisce |
> | maggiore di | x > y | true se x è strettamente maggiore di y, altrimenti false |
>= | maggiore o uguale di | x >= y | true se x è maggiore o uguale a y, altrimenti false |
< | minore di | x < y | true se x è strettamente minore di y, altrimenti false |
<= | minore o uguale di | x <= y | true se x è minore u uguale di y, altrimenti false |
== | uguale a | x == y | true se x è uguale a y, altrimenti false |
!= | diverso da | x != y | true se x è diverso da y, altrimenti false |
Operatori Bitwise in Java
In Java sono presenti anche gli operatori bitwise (bit a bit) che consentono di svolgere operazioni logiche confrontando i bit degli operandi.
Operatore | Descrizione | Espressione | Restituisce |
& | AND bit a bit | x & y | il valore determinato dall'operazione AND tra i bit di x e y |
| | OR bit a bit | x | y | il valore determinato dall'operazione OR tra i bit di x e y |
^ | XOR (or esclusivo) bit a bit | x ^ y | il valore determinato dall'operazione XOR tra i bit di x e y |
>> o << | Shift destro o sinistro con segno | x >> y x << y | sposta i bit della var. x verso destra o sinistra di y posizioni. Lo slittamento verso sx. prevede l'inserimento di bit 0 in coda mentre con lo slittamento a destra, viene coinvolto l'ultimo bit che rappresenta il segno. |
>>> | Shift destro senza segno | x >>> y | Sposta i bit della var. x verso destra di y posizioni senza considerare il bit di segno e aggiungendo sempre 0 a sinistra. |
~ | Complemento | ~x | Inverte tutti i bit della variabile x: da 0 a 1 e viceversa. |
Operatore Ternario in Java
L'ultimo operatore presente in Java che osserveremo in questa sezione è l'operatore ternario (o condizionale). Questo permette di definire espressioni con due risultati divverenti in base al valore booleano assunto da un'espressione. Ecco la sintassi:
[espressione booleana] ? [se vero] : [se falso]
Nel seguente esempio, la variabile numero2
, prenderà valore 20
se la variabile numero1
è uguale a 10
, in caso opposto prenderà valore 30
.
int numero1 = 10;
int numero2 = (numero1 == 10) ? 20 : 30