English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Java程序减去整数并检查溢出

Per controllare l'overflow di Integer, dobbiamo utilizzare il risultato della sottrazione degli interi per verificare Integer.MAX_VALUE. In questo caso, Integer.MAX_VALUE è il valore massimo degli interi in Java.

Guardiamo un esempio in cui si sottrae un intero e se il risultato è maggiore di Integer.MAX_VALUE, viene sollevata un'eccezione.

Di seguito è riportato un esempio di come controllare l'overflow di Integer.

Esempio

public class Demo {
   public static void main(String[] args) {
      int val1 = 9898999;
      int val2 = 8784556;
      System.out.println("Valore1: " + val1);
      System.out.println("Valore2: " + val2);
      long sub = (long)val1 - (long)val2;
      if (sub > Integer.MAX_VALUE) {
         throw new ArithmeticException("Overflow!");
      }
      //Mostra il risultato della sottrazione
      System.out.println("Risultato della sottrazione: " + (int)sub);
   }
}

Risultato dell'output

Valore1: 9898999
Valore2: 8784556
Risultato della sottrazione: 1114443

Nell'esempio sopra, abbiamo utilizzato due interi come seguenti

int val1 = 9898999;
int val2 = 8784556;

Ora, lo convertiamo in sottrazione.

long sub = (long)val1 - (long)val2;

Se il risultato è maggiore del valore massimo, viene sollevata un'eccezione.

Se (sub > Integer.MAX_VALUE) {
   throw new ArithmeticException("Overflow!");
}