私は0-9の間の数字を入力したいと思います。この範囲外の数値(負数または9以上の数値)を入力すると、無効な入力が行われます。また、try catchブロックを使用して誤った入力タイプ(文字列)を特定し、無効な印刷もしたいと考えています。キャッチブロックが無効な入力のステートメントを印刷しない
入力を再入力する必要はありません。一度は大丈夫です。私が持っている問題は、コンパイル時に、ある、と私はこのような文字列入力を入力
try{
input = keyboard.nextInt();
}catch (InputMismatchException e){
guess = keyboard.nextInt();
System.out.println("Invalid.");
}
:ここ
import java.util.InputMismatchException;
import java.util.Scanner;
import java.util.Random;
public class guessinggame
{
public static void main (String[] args)
{
int randomNumber = new Random().nextInt(10);
System.out.println("My number is " + randomNumber + ". ");
System.out.println("I’m thinking of a number between 0 and 9.");
System.out.println("What is your guess:");
Scanner keyboard = new Scanner(System.in);
int guess = keyboard.nextInt();
try{
input = keyboard.nextInt();
}catch (InputMismatchException e){
guess = keyboard.nextInt();
System.out.println("Invalid.");
}
if (guess < randomNumber) {
System.out.println("your guess was too low.");
}else if (guess > randomNumber){
System.out.println("your guess was too high.");
}else if (guess == randomNumber){
System.out.println("your guess was correct.");
}else if (guess < 0){
System.out.println("Invalid.");
}else if (guess > 9){
System.out.println("Invalid.");
}
}
}
は私のtry catchブロックである:私がこれまで試してみました何
"abc"の場合、この形式の実行時エラーが発生します。
Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Scanner.java:864)
at java.util.Scanner.next(Scanner.java:1485)
at java.util.Scanner.nextInt(Scanner.java:2117)
at java.util.Scanner.nextInt(Scanner.java:2076)
at guessinggame.main(guessinggame.java:17)
その代わりに、すべては、キャッチブロック内の文System.out.println("Invalid.");
に従って、 Invalid.
です。
ありがとうございました。あなたの説明は洞察力があり、try/catchステートメントの主題についての理解に役立ちました。 – sawreals