CIAO! Oggi considereremo un argomento molto importante, ovvero gli operatori numerici in Java .
Nella programmazione, i numeri sono ovunque. Se scavi in profondità e ricordi il liceo, potresti ricordare che un computer rappresenta tutte le informazioni in un formato numerico: combinazioni di zero e uno, noto anche come codice binario.
Ci sono molti operatori numerici nella programmazione, quindi useremo degli esempi per esplorare i più importanti di essi :) Iniziamo con i più semplici: gli operatori aritmetici . Questi sono i noti operatori di addizione (
+
), sottrazione ( -
), moltiplicazione ( *
) e divisione ( )./
public class Main {
public static void main(String[] args) {
int x = 999;
int y = 33;
System.out.println(x+y);
System.out.println(x-y);
System.out.println(x*y);
System.out.println(x/y);
}
}
Uscita console: 1032 966 32967 30 Hai già usato tutto questo. A questo gruppo è possibile aggiungere l' %
operatore resto o modulo ( ).
public class Main {
public static void main(String[] args) {
int x = 33;
int y = 33%2;
System.out.println(y);
}
}
Output della console: 1 In questo esempio, dividiamo 33 per 2. Questo produce 16, con una "coda" extra (uno) che non è divisibile per 2. Questa "coda" è il risultato dell'operazione "resto dalla divisione". Java implementa anche operatori di confronto/relazionali (proprio come in matematica). Probabilmente ti sono familiari anche a scuola:
- uguale a (
==
) - maggiore di (
>
) - meno di (
<
) - maggiore o uguale a (
>=
) - minore o uguale a (
<=
) - non uguale (
!=
)
==
, non =
. In Java, un singolo =
è l' operatore di assegnazione , che viene utilizzato quando a una variabile viene assegnato un numero, una stringa o il valore di un'altra variabile.
public class Main {
public static void main(String[] args) {
int x = 33;
int y = 999;
System.out.println(x=y);// We expect false to be displayed
}
}
Uscita console: 999 Oops! Questo ovviamente non è il risultato che ci aspettavamo. È un tipo di dati completamente diverso: ci aspettavamo di vedere un boolean , ma abbiamo ottenuto un numero. Tutto perché abbiamo usato un operatore di assegnazione tra parentesi invece di un confronto . x=y
Il valore di y
(999) è stato assegnato alla variabile x
, quindi abbiamo visualizzato il valore di x
. Ecco il modo giusto per farlo:
public class Main {
public static void main(String[] args) {
int x = 33;
int y = 999;
System.out.println(x==y);
}
}
Output della console: false Ora abbiamo confrontato correttamente i due numeri! :) Ecco un'altra caratteristica dell'operatore di assegnazione ( =
): può essere "concatenato" insieme:
public class Main {
public static void main(String[] args) {
int x = 999;
int y = 33;
int z = 256;
x = y = z;
System.out.println(x);
}
}
Output della console: 256 Ricorda che l'assegnazione è da destra a sinistra . Questa espressione ( x = y = z
) verrà eseguita nei passaggi:
y = z
, questo è,y = 256
x = y
, questo è,x = 256
Operatori unari.
Sono chiamati " unari " dalla parola " uno ", che significa " uno ". Hanno preso questo nome perché, a differenza dei precedenti operatori, agiscono su un unico numero, non su diversi. Questi includono:-
Meno unario. Capovolge il segno del numero.
public class Main {
public static void main(String[] args) {
int x = 999;
// Change the sign for the first time
x = -x;
System.out.println(x);
// Change the sign for the second time
x= -x;
System.out.println(x);
}
}
Output della console: -999 999 Abbiamo usato due volte l'operatore meno unario. Di conseguenza, il nostro numero è stato prima negativo e poi è diventato di nuovo positivo!
- Incremento (++) e decremento (--)
++
operatore aumenta un numero di uno e l' --
operatore riduce un numero della stessa quantità.
public class Main {
public static void main(String[] args) {
int x = 999;
x++;
System.out.println(x);
x--;
System.out.println(x);
}
}
Output della console: 1000 999 Questa notazione potrebbe esserti familiare se hai sentito parlare del linguaggio C++. I suoi creatori hanno usato questo nome interessante per trasmettere l'idea che "C++ è un'estensione del linguaggio C". Una popolare versione migliorata di Notepad si chiama Notepad++ Ecco un punto importante. Esistono due tipi di operatori di incremento e decremento: postfix e prefix . x++
- suffisso ++x
- prefisso Qual è la differenza fondamentale tra mettere i più/meno prima o dopo il numero? Vedremo nel seguente esempio:
public class Main {
public static void main(String[] args) {
int x = 999;
int y = x++;
System.out.println(y);
}
}
Uscita console: 999 Qualcosa non va! Volevamo aumentare x
di 1 e assegnare il nuovo valore alla variabile y. In altre parole, y dovrebbe essere 1000. Invece otteniamo qualcos'altro: 999. Sembra che x non sia stato incrementato e che l'operatore di incremento non abbia funzionato? Ma ha funzionato. Per convincerti, prova a visualizzare x
alla fine :)
public class Main {
public static void main(String[] args) {
int x = 999;
int y = x++;
System.out.println(y);
System.out.println(x);
}
}
Console output: 999 1000 In effetti, proprio per questo questa operazione si chiama postfix: viene eseguita dopo l'espressione main. Ciò significa, nel nostro caso: int y = x++;
y = x
viene eseguito per primo (e la variabile y
sarà inizializzata al valore di x
), e solo allora verrà x++
eseguita E se questo non fosse il comportamento che vogliamo? Quindi dobbiamo usare la notazione del prefisso :
public class Main {
public static void main(String[] args) {
int x = 999;
int y = ++x;
System.out.println(y);
}
}
In questo caso, ++x
viene elaborato prima e solo successivamente viene y = x
; eseguito. Dovresti memorizzare subito questa differenza per evitare di commettere errori in un programma reale in cui l'uso di postfix invece di prefix potrebbe capovolgere tutto :)
Operatori composti
Inoltre, in Java ci sono i cosiddetti operatori composti. Combinano due operatori:- Incarico
- Operatori aritmetici
+=
-=
*=
/=
%=
public class Main {
public static void main(String[] args) {
int x = 999;
int y = 33;
x += y;
System.out.println(x);
}
}
Uscita console: 1032 x += y
significa x = x + y
. I due simboli sono usati consecutivamente per brevità. Le combinazioni -=
, *=
, /=
e %=
funzionano in modo simile.
Operatori logici
Oltre agli operatori numerici, Java dispone anche di operazioni che coinvolgono valori booleani ( true e false ). Queste operazioni vengono eseguite utilizzando operatori logici!
- NOT logico . Capovolge il valore di un valore booleano
public class Main {
public static void main(String[] args) {
boolean x = true;
System.out.println(!x);
}
}
Uscita della console: falso
&&
- AND logico . Restituisce vero solo se entrambi gli operandi sono veri.
public class Main {
public static void main(String[] args) {
System.out.println(100 > 10 && 100 > 200);
System.out.println(100 > 50 && 100 >= 100);
}
}
Output della console: false true Il risultato della prima operazione è false, perché uno degli operandi è false, vale a dire 100 > 200
. Per restituire vero, l' &&
operatore richiede che entrambi gli operandi siano veri (come nel caso della seconda riga).
||
- OR logico . Restituisce vero quando almeno uno degli operandi è vero.
public class Main {
public static void main(String[] args) {
System.out.println(100 > 10 || 100 > 200);
}
}
Output della console: true L'espressione 100 > 200
è ancora false, ma per l' operatore OR è del tutto sufficiente che la prima parte ( 100 > 10
) sia true.
GO TO FULL VERSION