-2

在下面的代码中,我要求用户输入一个整数,如果输入是 0 或负数,它会再次循环,直到给出正数。问题是,如果用户按下一个字母,我的代码就会崩溃,尽管我在很多方面都使用了 try-catch,但并没有真正奏效。有任何想法吗?我在循环中使用了 try-catch ,但它只适用于一个字母输入并且不正确。

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

当前代码中的问题是,您总是试图读取 an int ,因此当接收到非整数输入时,您无法以正确的方式处理错误。将其修改为始终读取 aString并将其转换为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 回答