Operatori in Java

Contenuto1 Operatori aritmetici di base in Java2 Operatori di Assegnazione in Java3 Operatori di Incremento e Decremento in Java4 Operatori Logici in Java5 Operatori di Confronto in Java6 Operatori Bitwise […]

Avatar di gbfactory
gbfactory 3 Novembre 2020

Un operatore è un carattere che rappresenta un'azione. Per esempio, il carattere + rappresenta l'operazione aritmetica dell'addizione.

  1. Operatori aritmetici di base
  2. Operatori di assegnazione
  3. Operatori di incremento e decremento automatico
  4. Operatori logici
  5. Operatori di confronto (relazionali)
  6. Operatori bitwise (bit a bit)
  7. Operatore ternario

Operatori aritmetici di base in Java

In Java abbiamo sono presenti i classici operatori aritmetici con le operazioni di base:

OperatoreDescrizioneEspressione
+Addizionex + y
-Sottrazionex - y
*Moltiplicazionex * y
/Divisionex / y
%Modulo*x % y
* il modulo restituisce il resto di una divisione
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:

OperatoreDescrizioneEspressione
=Assegna alla variabile espressa a sinistra dell'uguale il valore espresso a destra dell'uguale.y = x
+=Operatore abbreviato di addizioney += x
equivale a
y = y + x
-=Operatore abbreviato di sottrazioney -= x
equivale a
y = y - x
*=Operatore abbreviato di moltiplicazioney *= x
equivale a
y = y * x
/=Operatore abbreviato di divisioney /= x
equivale a
y = y / x
%=Operatore abbreviato di moduloy %= 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

OperatoreDescrizione
x++Valuta x e poi incrementa x di 1
x--Valuta x e poi decrementa x di 1
++xIncrementa x di 1 e poi valuta x
--xDecrementa 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:

OperatoreDescrizioneEspressioneRestituisce
&&ANDx && ytrue se x e y sono entrambe vere, false se almeno una delle due è falsa.
||ORx || ytrue se almeno una delle due variabili x e y è vera, false se entrambe sono false.
!NOT!xRestituisce 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.

OperatoreDescrizioneEspressioneRestituisce
>maggiore dix > ytrue se x è strettamente maggiore di y, altrimenti false
>=maggiore
o uguale di
x >= ytrue se x è maggiore o uguale a y, altrimenti false
<minore dix < ytrue se x è strettamente minore di y, altrimenti false
<=minore o
uguale di
x <= ytrue se x è minore u uguale di y, altrimenti false
==uguale ax == ytrue se x è uguale a y, altrimenti false
!=diverso dax != ytrue 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.

OperatoreDescrizioneEspressioneRestituisce
&AND bit a bitx & yil valore determinato
dall'operazione AND
tra i bit di x e y
|OR bit a bitx | yil valore determinato
dall'operazione OR
tra i bit di x e y
^XOR (or esclusivo)
bit a bit
x ^ yil 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 >>> ySposta i bit della var. x
verso destra di y
posizioni senza considerare il bit
di segno e aggiungendo
sempre 0 a sinistra.
~Complemento~xInverte 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