javaでATMのシステムを作るという課題が出ているのですがDepositを選んでもし文字を入力した場合に[input error! try again] とだしてもう一度入力をしてもらいたいのですが、文字を入力した時にメッセージが表示されず、しかもループしません。解決策が知りたいです。よろしくお願いします。
while(true) { String input = JOptionPane.showInputDialog("Please enter the deposit in US dollars"); double amount = Double.parseDouble(input); isNumber(input); if(isNumber(input) == true) { balance += amount; break; }else { JOptionPane.showMessageDialog(null, "Input error!! Try again"); } }
public static boolean isNumber(String input) { try { Double.parseDouble(input); return true; }catch(NumberFormatException e){ return false; } }
例外が発生して止まると思うんですが、違いますか?
多分そうだと思います。
もし文字を入力してもelse文に行きません。
例外が発生するとエラーメッセージが出ると思うんですが、出ないようにしていますか?
出ます!
Exception in thread "main" java.lang.NumberFormatException: For input string: "d"
at java.base/jdk.internal.math.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:2054)
at java.base/jdk.internal.math.FloatingDecimal.parseDouble(FloatingDecimal.java:110)
at java.base/java.lang.Double.parseDouble(Double.java:549)
at check.check.main(check.java:24)
と出ました!
回答1件
あなたの回答
tips
プレビュー