OPERATORI IN JAVA

java-logo

Un operatore è un simbolo specifico di un linguaggio di programmazione che consente di eseguire una determinata operazione. Un operatore agisce sempre su un insieme di elementi detti operandi.

Operandi

Nell’esempio puoi vedere l’operatore + che agisce su due operandi. Come vedremo è possibile unire tra loro più operatori, in questi casi occorre stabilire una precedenza tra gli operatori. La precedenza è una regola che stabilisce che alcuni operatori hanno priorità su altri. Quando poi ci troviamo in operazioni composte in cui gli operatori hanno la stessa precedenza entra in azione l’associatività. Essa determina in quale ordine verranno presi in considerazione gli operatori. In realtà ne esistono due tipi:

Associatività

Nel primo caso viene eseguito l’operatore che sta più a sinistra poi l’operatore che sta a destra. Nel secondo caso è l’inverso. La maggior parte degli operatori sono binari, cioè lavorano su una coppia di operandi come l’operatore +. Altri operatori lavorano su un solo operando, come l’operatore che serve a invertire il segno di un operando. Nelle operazioni composte è possibile alterare la precedenza e l’associatività con le parentesi tonde come vedremo. Facciamo subito un esempio.

5 + 3 * 2 = 11

In questo caso l’operatore di moltiplicazione ha precedenza rispetto all’operatore somma; quindi, prima viene effettuato il calcolo 3 * 2 e poi la somma. Se vogliamo cambiare questo comportamento basta mettere le parentesi tonde ed eseguire prima la somma poi la moltiplicazione.

(5 + 3) * 2 = 16

L’OPERATORE DI ASSEGNAMENTO SEMPLICE

Lo abbiamo incontrato più volte ed era rappresentato dal simbolo di uguale. Questo è l’operatore che dobbiamo utilizzare per assegnare un valore a una variabile o a una costante.

myVar = 150;

Per essere più precisi dobbiamo dire che l’operatore di assegnamento semplice assegna un valore o espressione che si trova alla sua destra alla variabile o costante che viene posta a sinistra del simbolo di uguale.

Un’espressione è un’operazione semplice o composta valutata durante l’esecuzione del programma (Runtime) e che produce sempre un valore. Un’espressione può essere un valore literal oppure una variabile che ritorna il valore associato in quel momento, oppure costituita da più operatori che agiscono sugli operandi o anche l’invocazione di un metodo.

Operatore di uguaglianza

lvalue è la memoria che è associata a una variabile nella quale viene posto il valore di ritorno di un’espressione.

lvalue

rvalue è un’espressione che produce un valore, che può essere assegnato a un lvalue.

rvalue

In questo caso, se noi invertiamo l’ordine dell’assegnamento, la variabile myVar può essere anche un rvalue in quanto è un’espressione che ritorna il proprio valore e quindi può stare alla destra del simbolo di uguale. Tuttavia, il literal 250 non può essere evidentemente un lvalue in quanto non rappresenta un’area di memoria nella quale possiamo andare a scrivere qualcosa, cioè non è una zona di memoria puntata da una variabile. Se ne deduce che l’assegnamento non è valido.

Assegnamento

GLI OPERATORI ARITMETICI

Operatori Aritmetici

I primi cinque operatori sono binari, cioè agiscono su due operandi mentre gli ultimi due sono unari, aumentano o decrementano di una unità l’operando a cui vengono applicati. Gli operatori somma e sottrazione li conosciamo bene hanno un’associatività da sinistra a destra. È ovviamente possibile usare le variabili al posto dei literal numerici.

Somma e sottrazione

L’operatore di moltiplicazione segue le stesse regole della somma e sottrazione. Però ha precedenza maggiore ed ha la stessa associatività da sinistra a destra.

Moltiplicazione

Passando alla divisione, se c’è una parte decimale e noi usiamo una variabile di tipo intero la parte frazionaria verrà scartata. Usare float e double per mantenere la parte decimale.

Divisione
Double

L’operatore modulo ritorna il resto di una divisione.

Modulo

OPERATORI DI INCREMENTO E DECREMENTO

Se applichiamo l’operatore unario di incremento ++ ponendolo prima della variabile stiamo usando la notazione prefissa dell’operatore che si chiama preincremento. In questo caso succede che prima la variabile y viene incrementata e poi solo dopo sommata a x.

Preincremento

Se poniamo l’operatore ++ dopo l’operando le cose cambiano, prima viene eseguita la somma di x e di y poi solo dopo y viene incrementata di una unità.

Postincremento

Stessa cosa succede per l’operatore unario di decremento .

Predecremento

L’ultima figura rappresenta un postdecremento.

Postdecremento

ESECUZIONE DEL CODICE DI ESEMPIO

  • Scaricare il codice da GITHUB, lanciare il file JAR con il seguente comando in Visual Studio Code, posizionandosi nella directory contenente il JAR.

        java -jar –enable-preview CorsoJava.jar

  • Oppure mettere in esecuzione il main che si trova nel file CorsoJava.java.

LINK AI POST PRECEDENTI

IL LINGUAGGIO JAVA

LINK AL CODICE SU GITHUB

GITHUB