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 = 256x = 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 xdi 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 xalla 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 = xviene eseguito per primo (e la variabile ysarà 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, ++xviene 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