1. ホーム
  2. java

[解決済み] Java InputMismatchException

2022-02-14 14:32:34

質問

私はこのコードを持っていて、私は文字の例外をキャッチしたいのですが、これらのエラーが発生し続けています。

Exception in thread "main" java.util.InputMismatchException
    at java.util.Scanner.throwFor(Scanner.java:840)
    at java.util.Scanner.next(Scanner.java:1461)
    at java.util.Scanner.nextInt(Scanner.java:2091)
    at java.util.Scanner.nextInt(Scanner.java:2050)
    at exercise_one.Exercise.main(Exercise.java:17)

そして、これが私のコードです。

 System.out.print("Enter the number of students: ");

 students = input.nextInt(); 

 while (students <= 0) {

     try {

        System.out.print("Enter the number of students: ");

        students = input.nextInt();

     }

     catch (InputMismatchException e) {

        System.out.print("Enter the number of students");

     }
 }    

解決方法は?

代わりにdo-whileループを使うことで、最初の input.nextInt() .

do {
    try {
        System.out.print("Enter the number of students: ");
        students = input.nextInt();
    } catch (InputMismatchException e) {
        System.out.print("Invalid number of students. ");
    }
    input.nextLine(); // clears the buffer
} while (students <= 0);

したがって、すべての InputMismatchException は一箇所で処理することができます。