-2

以下のコードでは、ユーザーに整数の入力を求め、入力が 0 または負の数の場合、正の数が与えられるまでループを繰り返します。ユーザーが文字を押すと、コードがクラッシュし、多くの方法で try-catch を使用したにもかかわらず、実際には何も機能しませんでした。何か案は?ループ内で try-catch を使用しましたが、1 文字の入力に対してのみ機能し、正しく機能しませんでした。

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

numberOfPeople = input.nextInt();

while (numberOfPeople <= 0) {

      System.out.print("Wrong input! Enter the number of people again: ");

      numberOfPeople = input.nextInt();

}
4

1 に答える 1

4

現在のコードの問題は、常に を読み取ろうとしているint ため、整数以外の入力を受け取ったときにエラーを正しく処理できないことです。これを変更して、常に a を読み取り、Stringそれを に変換しますint

int numberOfPeople = 0;
while (numberOfPeople <= 0) {
    try {
        System.out.print("Enter the number of people: ");
        numberOfPeople = Integer.parseInt(input.nextLine());
    } catch (Exception e) {
        System.out.print("Wrong input!");
        numberOfPeople = 0;
    }
}
//continue with your life...
于 2013-05-31T16:18:22.230 に答える