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

Javaプログラムで整数を乗算しオーバーフローをチェックする

Integerのオーバーフローを確認するには、Integer.MAX_VALUEと整数の乗算結果を確認する必要があります。ここで、Integer.MAX_VALUEはJavaの整数の最大値です。

整数の乗算を行い、結果がInteger.MAX_VALUEを超えた場合に例外が発生する例を見てみましょう。

以下は、Integerのオーバーフローを確認する例です。

public class Demo {
   public static void main(String[] args) {
      int val1 = 9898;
      int val2 = 6784;
      System.out.println("値1: "+val1);
      System.out.println("値2: "+val2);
      long mul = (long)val1 * (long)val2;
      if (mul > Integer.MAX_VALUE) {
         throw new ArithmeticException("Overflow!");
      }
      //乗算を表示
      System.out.println("乗算結果:");+(int)mul);
   }
}

出力結果

値1: 9898
値2: 6784
乗算結果: 67148032

上の例では、以下の二つの整数を使用しています。

int val1 = 9898;
int val2 = 6784;

今、それをキャストして二倍にする。

long mul = (long)val1 + (long)val2;

結果が最大値を超えた場合、例外を発生させる。

If (mul > Integer.MAX_VALUE) {
   throw new ArithmeticException("Overflow!");
}
おすすめ