ゼロ除算の商と剰余 - 萌えJava超入門
第五章 演算子

ゼロ除算の商と剰余

算数と同じで、0で割ってはいけません。
ただ、 ゼロ除算をすると何が起こるのかを知っておきましょう。

目次


ゼロ除算するとどうなるか
見ておこう



は~い。


1. ゼロ除算したintの商

//Sample05_31.java
class Sample05_31 {
  public static void main(String[] args){
    int num = 9 / 0;
    System.out.println(num);
  }
}

コマンドライン
>javac Sample05_31.java
>java Sample05_31
Exception in thread "main"
   java.lang.ArithmeticException: / by zero
    at Sample05_31.main(Sample05_31.java:4)


ゼロ除算した結果を intとして受けた場合
java.lang.ArithmeticException: / by zero
と表示されました。
ゼロ除算した旨のエラーです。

プログラムはここで止まります。

/ by zero って書いてあるから
気がつくかな。


2. ゼロ除算したintの剰余

//Sample05_32.java
class Sample05_32 {
  public static void main(String[] args){
    int num = 9 % 0;
    System.out.println(num);
  }
}

コマンドライン
>javac Sample05_32.java
>java Sample05_32
Exception in thread "main"
   java.lang.ArithmeticException: / by zero
    at Sample05_32.main(Sample05_32.java:4)


ゼロ除算した剰余を intとして受けた場合
java.lang.ArithmeticException: / by zero
と表示されました。
ゼロ除算した旨のエラーです。
Sample05_31 と同じですね。



3. ゼロ除算したdoubleの商

//Sample05_33.java
class Sample05_33 {
    public static void main(String[] args){
        double dou;
        dou = 9.0 / 0.0;
        System.out.println(dou);
        dou = -9.0 / 0.0;
        System.out.println(dou);
    }
}

コマンドライン
>javac Sample05_33.java
>java Sample05_33
Infinity
-Infinity

ゼロ除算した結果を doubleとして受けた場合
Infinity」(正の無限大)あるいは、「-Infinity」(負の無限大)と表示されました。

エラーは出ていません。
また、Infinityは、比較演算子で比較できます。
ゼロ除算に気づきにくいので注意が必要です。

インフィニティって
なんかかっこよく
ないっスか?
ヒント:
Infinity --> java.lang.Double.POSITIVE_INFINITY
-Infinity --> java.lang.Double.NEGATIVE_INFINITY


4. ゼロ除算したdoubleの剰余

//Sample05_34.java
class Sample05_34 {
    public static void main(String[] args){
        double dou;
        dou = 9.0 % 0.0;
        System.out.println(dou);
        dou = -9.0 % 0.0;
        System.out.println(dou);
    }
}

コマンドライン
>javac Sample05_34.java
>java Sample05_34
NaN
NaN

ゼロ除算した剰余を doubleとして受けた場合「NaN」と表示されました。
これは Not a Number の略で、「数値ではない」といった意味です。

エラーは出ません。
(NaN==NaN の結果がfalseになる特性があります。
 自身との比較で falseとなるのはNaNだけです)

これは
Excelの「#DIV/0!」と
似てるね。
ヒント:
NaN --> java.lang.Double.NaN


お疲れ様でした。




© 2019 awasekagami