第五章 演算子
ゼロ除算の商と剰余
算数と同じで、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は、比較演算子で比較できます。
ゼロ除算に気づきにくいので注意が必要です。
インフィニティって
なんかかっこよく
ないっスか?
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!」と
似てるね。
お疲れ様でした。