import java.util.Scanner; import java.util.InputMismatchException; public class Main { public static void main(String[] args) { try{System.out.println("数字を入力してください"); System.out.println("100を入力された数字で除算します"); int n = new java.util.Scanner(System.in).nextInt(); //割り切れればそのまま実行 if(100 % n == 0){ System.out.println("答えは"+ 100/n); }else { System.out.println("0で除算出来ません"); } } //例外発生時の処理 catch(InputMismatchException e){ System.out.println("数値ではありません。"); } //例外に関係なく実行する finally { System.out.println("終了"); } } }
現在上記のような入力した数字が100を割り切れるかというコードを書いており0を打ち込んだ時以外思い通りに動きます。
ですが0を入力した場合だけ「除算出来ません」ではなく下記のような結果になってしまいます。
100を入力された数字で除算します
0
終了
Exception in thread "main" java.lang.ArithmeticException: / by zero
at Main.main(Main.java:10)
if文の条件が悪いのか文章の構成自体が悪いのかと色々考えたのですが解決できないです。
力を貸していただきたいです。よろしくお願い致します。
回答3件
あなたの回答
tips
プレビュー