問題J00183の解答例と解説 Java Lv.1
範囲を超えた場合(15分)
<解答例 1>
<実行結果>
Integer.MAX_VALUE + 1 の結果は、Integer.MIN_VALUEの値(-2147483648)になっていて、Integer.MIN_VALUE - 1 の結果は、Integer.MAX_VALUE になっているね。つまり int 型の場合、範囲を超えると、循環してしまうんだね。
そのような場合、コンパイラのオプションによってはwarning(警告)メッセージが出されることもあるけど、コンパイルは出来てしまうよ。けれども実行時にエラーにならないよ。だから、バグになってしまっても検知しにくいことがあるよ。
本格的なプログラムを作るときは、自分が作るプログラムが取り得る値の範囲を把握しておいて、範囲を超えそうな場合は、適切な型を選ぶ必要があるよ。
そのような場合、コンパイラのオプションによってはwarning(警告)メッセージが出されることもあるけど、コンパイルは出来てしまうよ。けれども実行時にエラーにならないよ。だから、バグになってしまっても検知しにくいことがあるよ。
本格的なプログラムを作るときは、自分が作るプログラムが取り得る値の範囲を把握しておいて、範囲を超えそうな場合は、適切な型を選ぶ必要があるよ。
初めての方へ:このページは、このサイトで用意しているプログラミング問題の解答と解説のページです。このサイトではブラウザ上からプログラミングができます。会員登録(無料)して、プログラミングしてみませんか?
新規登録
新規登録