public static int promptUser(Scanner in, String prompt, int min, int max) {
int userTempVal = 0;
do {
userTempVal = in.nextInt();
if (userTempVal < min || userTempVal > max) {
System.out.println(prompt);
}
}while (userTempVal < min || userTempVal > max);
return userTempVal;
}
これは私の現在のコードです。私は基本的にユーザーの入力をスキャンし、minとmaxの間の整数であることを確認する必要があります。 minとmaxの間の整数でない場合は、プロンプトを表示し、新しいintをスキャンします。ユーザーがintのほかに何かを入力すると、私の現在のコードは失敗します(doubleまたはstring)。入力がintでないときにプロンプトを表示してdo whileループを続行するコードを取得するにはどうすればよいですか?これは私が服用しているクラスのためのもので、インストラクターはhasNextInt()関数を使ってこれを説明できると示唆していましたが、使用するたびに動作しないか、エラーが発生します。助けてください、私は初心者プログラマーです! (持っている次のInt()パラメータを使用)スキャナーの理解と使用の助けが必要です。hasNextInt()
EDIT:
public static int promptUser(Scanner in, String prompt, int min, int max) {
int userTempVal = 0;
do {
userTempVal = in.nextInt();
if (userTempVal < min || userTempVal > max || !in.hasNextInt()) {
System.out.println(prompt);
}
}while (userTempVal < min || userTempVal > max || !in.hasNextInt());
return userTempVal;
}
私はこのエラーを取得する - 私はint型を入力すると>、プログラムが実行を停止。私は文字列を入力する場合: Exception in thread "main" java.util.InputMismatchException at java.util.Scanner.throwFor(Unknown Source) at java.util.Scanner.next(Unknown Source) at java.util.Scanner.nextInt(Unknown Source) at java.util.Scanner.nextInt(Unknown Source) at MineTest.promptUser(MineTest.java:60) at MineTest.main(MineTest.java:24)
"講師は、私たちがhasNextInt()関数を使ってこれを説明できると暗示しましたが、使用するたびに動作しないか、エラーが発生します。あなたはどんなエラーを出していますか? 「うまくいかない」とはどういう意味ですか? – Pshemo
'hasNextInt()'が 'true'であることを確認することは、' nextInt() 'の後続呼び出しが' int'を正常に返すようにする正しい戦略です。それは働くことができます。どのように使用しようとしたのか教えていただけますか? –
私はhasNextInt()を使うと編集して自分のコードやエラーを投稿します – punchkey