CodeGym /Java Blog /Random-IT /Operatori numerici in Java
John Squirrels
Livello 41
San Francisco

Operatori numerici in Java

Pubblicato nel gruppo Random-IT
CIAO! Oggi considereremo un argomento molto importante, ovvero gli operatori numerici in Java .
Operatori numerici in Java - 1
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.
Operatori numerici in Java - 2
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 ( !=)
Qui dovresti prestare attenzione a un punto importante che fa commettere errori a molti principianti. L'operatore "uguale" è scritto ==, 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.
Operatori numerici in Java - 3

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 (--)
L' ++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
Questi includono:
  • +=
  • -=
  • *=
  • /=
  • %=
Consideriamo un esempio:

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.
Quando usiamo questo operatore, il nostro esempio precedente produce un risultato diverso:

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.
Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION