スキャナの入力がint
であるかどうかをチェックし、ユーザがint
を入力するまでerrormessageをループするメソッドを作成しようとしています。以下の方法は、usserが1つ以上の間違った入力を与えない限り長く働きます。私が複数の文字を入力してintを入力すると、プログラムがクラッシュします。私はそれが1つの例外をキャッチするキャッチしようとするには何かを持っているかもしれないと思うが、確かではない、そしてそれを働かせるように見える。誰も私がこれをどのように修正できるか知っていますか?NumberFormatException 2つ以上の「間違い」の後に、catch catch recursionが機能しない
方法で呼び出す:
System.out.println("Write the street number of the sender: ");
int senderStreetNumber = checkInt(sc.nextLine);
方法:再帰の
public static int checkInt (String value){
Scanner sc = new Scanner(System.in);
try{
Integer.parseInt(value);
} catch(NumberFormatException nfe) {
System.out.println("ERROR! Please enter a number.");
value = sc.nextLine();
checkInt(value);
}
int convertedValue = Integer.parseInt(value);
return convertedValue;
}
再帰を使用して、ネストされた呼び出しの結果を無視するためのあなたの理由は何ですか? – Tom
私はコーディングにかなり新しいことを認めなければなりません。どうすればいいかわかりません。 – sodapunk
[NumberFormatExceptionとは何ですか?どうすれば修正できますか?](https://stackoverflow.com/questions/39849984/what-is-a-numberformatexception-and-how-can-i-fix-it) – xenteros