0 で割ったとき
このコードを実行するとどうなるか。
public class Main {
public static void main(String[] args) {
double d = 1.0 / 0;
System.out.print(d + " ");
int i = 0;
System.out.print(1 / i);
}
}
- A
Infinityと出力された後、例外が発生する - B
Infinity 0と出力される - C すぐに例外が発生して何も出力されない
- D コンパイルエラーになる
正解と解説を見る
正解: A
- A: double の 1.0 / 0 は例外にならず Infinity です。次の int の 1 / 0 で ArithmeticException が発生します。
- B: int の 0 による割り算は例外 (ArithmeticException) になるので、0 は出力されません。
- C: 浮動小数点の割り算は 0 で割っても例外にならず、先に Infinity が出力されます。
- D: どちらの割り算も文法上は問題なく、コンパイルできます。
ポイント
- 小数の計算で 0 で割ると Infinity になり、例外は起きません。整数を 0 で割ると ArithmeticException です。
「例外処理の仕組みとチェック例外、非チェック例外、エラーの違い」をこのサイトで解く (記録・間違えた問題の解き直し・AI教師への質問)