JavaRush /Java Blog /Random-IT /Operazioni sui numeri in Java

Operazioni sui numeri in Java

Pubblicato nel gruppo Random-IT
Ciao! Oggi esamineremo un argomento molto importante, vale a dire le operazioni sui numeri in Java . I numeri sono ovunque nella programmazione. Se approfondisci il curriculum scolastico, ricorderai che tutte le informazioni su un computer sono presentate in un formato numerico - combinazioni di zero e uno - chiamato anche codice binario. Operazioni sui numeri in Java - 2Ci sono moltissime operazioni sui numeri nella programmazione, quindi esamineremo le più importanti con esempi :)

Operazioni aritmetiche

Cominciamo con la cosa più semplice: con le operazioni aritmetiche. Queste sono le ben note addizione (+ segno), 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. Puoi aggiungere loro un'operazione %: il resto della divisione.
public class Main {

   public static void main(String[] args) {

       int x = 33;
       int y = 33%2;
       System.out.println(y);
   }
}
Uscita console:

1
In questo esempio, dividiamo 33 per 2. Di conseguenza, otteniamo 16 e rimane una "coda" extra che non è divisibile per 2 - uno. Questa “coda” sarà il risultato dell’operazione “resto della divisione”. Java (così come la matematica) implementa gli operatori di confronto . Probabilmente li conosci anche da scuola:
  • equivale ( ==)
  • Di più ( >)
  • meno ( <)
  • maggiore o uguale a ( >=)
  • minore o uguale a ( <=)
  • non uguale ( !=)
Qui vale la pena prestare attenzione a un punto importante in cui molti principianti commettono errori. L'operazione “è uguale a” si scrive come ==e non con un segno =. Il segno dell'unità =in Java è un operatore di assegnazione, in cui a una variabile viene assegnato un numero, una stringa o il valore di un'altra variabile. Operazioni sui numeri in Java - 3
public class Main {

   public static void main(String[] args) {

       int x = 33;
       int y = 999;
       System.out.println(x=y);// expect false to be printed to the console
   }
}
Uscita console:

999
Ops! Questo chiaramente non è il risultato che ci aspettavamo. Questo è un tipo di dati completamente diverso: ci aspettavamo di vedere boolean, ma abbiamo ottenuto un numero. Questo perché tra parentesi abbiamo un'operazione di assegnazione, non un confronto. x=y Il valore y(999) è stato assegnato alla variabile xe poi lo abbiamo stampato xsulla console. Opzione corretta:
public class Main {

   public static void main(String[] args) {

       int x = 33;
       int y = 999;
       System.out.println(x==y);
   }
}
Uscita console:

false
Ora abbiamo confrontato correttamente i 2 numeri! :) Un'altra caratteristica dell'operazione di assegnazione ( =) è che può essere eseguita “concatenata”:
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);
   }
}
Uscita console:

256
Ricorda: l'assegnazione viene eseguita da destra a sinistra. Questa espressione ( x = y = z) verrà eseguita nei passaggi:
  • y = z, cioè y = 256
  • x = y, cioè x = 256

Operazioni unarie

Sono chiamati "unari" dalla parola "uno" - "uno". Hanno ricevuto questo nome perché, a differenza dei precedenti, vengono eseguiti su un numero e non su più numeri. Questi includono:
  • Meno unario. Inverte 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 a second time
           x= -x;
           System.out.println(x);
       }
    }

    Uscita console:

    
    -999
    999

    Abbiamo usato il meno unario due volte. Di conseguenza, il nostro numero è diventato inizialmente negativo e poi di nuovo positivo!

  • Incremento ( ++) e decremento ( --)

    Un'operazione ++aumenta un numero di uno e un'operazione --lo diminuisce della stessa unità.

    public class Main {
    
       public static void main(String[] args) {
    
           int x = 999;
           x++;
           System.out.println(x);
    
           x--;
           System.out.println(x);
       }
    }

    Uscita console:

    
    1000
    999
Questa forma di notazione potrebbe risultarti familiare se hai sentito parlare del linguaggio C++. Con l’aiuto di un nome così interessante, i suoi creatori hanno trasmesso la loro idea: “C++ è un’estensione del linguaggio C”. Una popolare versione migliorata di Blocco note si chiama Notepad++ Punto importante. Esistono due tipi di operazioni di incremento e decremento: suffisso e prefisso. x++- notazione suffissa ++x- notazione su prefisso Qual è la differenza fondamentale se metti più e meno prima o dopo il numero? Vediamo in un esempio:
public class Main {

   public static void main(String[] args) {

       int x = 999;
       int y = x++;
       System.out.println(y);
   }
}
Uscita console:

999
C'è qualcosa di sbagliato! Volevamo incrementare xdi 1 e assegnare un nuovo valore alla variabile y. Cioè, y dovrebbe essere uguale a 1000. Ma abbiamo un risultato diverso: 999. Si scopre che xnon è stato aumentato e l'operazione di incremento non ha funzionato? Come ha funzionato. Per verificarlo, prova a stampare x sulla console 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);
   }
}
Uscita console:

999
1000
In effetti, è per questo che l'operazione suffisso si chiama così: viene eseguita dopo l'espressione principale. Cioè, nel nostro caso: int y = x++; prima viene eseguito y = x(e alla variabile y verrà assegnato il suo valore originale x), e solo dopo x++ ... E se non fossimo soddisfatti di questo comportamento? È necessario utilizzare 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 funzionerà prima ++x e solo dopo, y = x; vale la pena ricordare subito questa differenza per non commettere errori in un programma reale, in cui ogni comportamento può capovolgersi per questo :)

Operazioni combinate

Inoltre, in Java esistono le cosiddette operazioni combinate. Usano una combinazione di due operazioni:
  • Incarico
  • Operazione aritmetica
Ciò include le operazioni:
  • +=
  • -=
  • *=
  • /=
  • %=
Diamo un'occhiata ad 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 += ysignifica x = x + y. Solo per brevità vengono utilizzati due caratteri di seguito. Funziona anche con combinazioni di -=, *=, /=e %=.

Operazioni logiche

Oltre alle operazioni sui numeri, Java ha anche operazioni sulle variabili booleane - truee false. Queste operazioni vengono eseguite utilizzando operatori logici
  • !— Operatore “NOT”. Inverte il valore di una variabile booleana

    public class Main {
    
       public static void main(String[] args) {
    
           boolean x = true;
           System.out.println(!x);
       }
    }

    Uscita console:

    
    false

  • &&— operatore “AND”. Restituisce un valore truesolo se entrambi gli operandi sono true.

    public class Main {
    
       public static void main(String[] args) {
    
           System.out.println(100 > 10 && 100 > 200);
           System.out.println(100 > 50 && 100 >= 100);
       }
    }

    Uscita console:

    
    false
    true

    Il risultato della prima operazione è false, poiché una delle condizioni è falsa, ovvero 100 > 200. L'operatore richiede che tutte le condizioni siano vere (come nella seconda riga, ad esempio) &&per restituire .true

  • ||— Operatore “OR”. Restituisce truequando almeno uno degli operandi è vero.

    Qui il nostro esempio precedente funzionerà diversamente:

    public class Main {
    
       public static void main(String[] args) {
    
           System.out.println(100 > 10 || 100 > 200);
       }
    }

    Uscita console:

    
    true

    Выражение 100 > 200 по-прежнему ложно, но оператору “or” вполне достаточно, что первая часть (100 > 10) является истинной.

Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION