私は新しいヒューマン学習のコードです!私は無効な文字の修正でJavaスキャナ 'リセット'が必要です
スキャナに問題がありました。無効な文字に「リセット」する必要があります。
マイコード:スキャナが数字のみを受け入れるよう
public class Lemonade {
static int m = 150;
private static Scanner scan;
public static void main(String[] args) {
int day = 1;
for(int gameover = m; gameover > 0; day++) {
int Random = (int) (Math.random() * 100);
if(Random <= 25) {
System.out.println("Great Chance!");
System.out.println("--------------------------------");
}
else if(Random <= 50) {
System.out.println("Good Chance!");
System.out.println("--------------------------------");
}
else if(Random <= 75) {
System.out.println("Bad Chance!");
System.out.println("--------------------------------");
}
else if(Random <= 100) {
System.out.println("Awful Chance!");
System.out.println("--------------------------------");
}
int count = 0;
int none = 0;
scan = new Scanner(System.in);
System.out.println("Enter a number between 0 and " + m + "!");
count = scan.nextInt();
if(count >= none && count <= m) {
System.out.println("You entered " + count + "!");
System.out.println("--------------------------------");
day = day + 1;
m = m - count;
System.out.println("Day " + day);
}
else {
System.out.println("Enter a number between 0 and " + m + ".");
count = scan.nextInt();
}
}
}
}
は今、「F」のような無効な文字で「リセット」にこれを取得する方法私の質問です。
ありがとうございました!
必要なのは、next()の呼び出しです。これは、ScannerからStringを読み込み、破棄します。 –
おそらく 'for'や' while'のようなループは、ユーザーが正しいものを入力するまで、もっと多くの入力を読みたいと思うでしょう。それは本当に「リセット」だけではありません。 – markspace