1

while ループを使用して、スキャナー オブジェクトに入力された値が整数であることを確認しています。

while (!capacityCheck) {
        try {
            System.out.println("Capacity");
            capacity = scan.nextInt();
            capacityCheck = true;
        } catch (InputMismatchException e) {
            System.out.println("Capacity must be an integer");
        }
    }

ただし、ユーザーが整数を入力しない場合、戻って別の入力を取得する必要があるときに、「Capacity」とそれに続く出力がキャッチに繰り返し出力され、それ以上の入力は要求されません。どうすればこれを止めることができますか?

4

5 に答える 5

0

これをループの最後に入れてみてください -

scan.nextLine();

または、catch ブロックに配置することをお勧めします。

    while (!capacityCheck) {
        try {
            System.out.println("Capacity");
            capacity = scan.nextInt();
            capacityCheck = true;
        } catch (InputMismatchException e) {
            System.out.println("Capacity must be an integer");
            scan.nextLine();
        }
    }
于 2013-03-20T05:33:24.097 に答える