1
import java.util.Scanner;

public class test {

    public static void main(String[] args) {
        System.out.print("Enter a number: ");
        Scanner keyboard = new Scanner(System.in);
        int x = keyboard.nextInt();

    }
}

如何循环一段像上面的代码,直到输入一个 int 而不是在输入非 int 时给出错误?

4

2 回答 2

2

Scanner 类内置了很多东西,因此您不需要尝试捕获,除非您明确希望捕获错误。

public static int test(){
    int number = 0;
    Scanner input = new Scanner(System.in);
    boolean valid = false;
    do{
        System.out.print("Please enter an integer: ");
        if(input.hasNextInt()){ // This checks to see if the next input is a valid **int**
            number = input.nextInt();
            valid = true;
        }
        else{
            System.out.print("Not a valid integer!\n");
            input.next();
        }
    }while(valid == false);
    return number;

}

于 2013-11-01T23:22:25.683 回答
0

这会尝试运行扫描仪,如果输入不是预期的输入,它将简单地重新启动。你可以给它添加一条消息,我的代码是为了简洁。

import java.util.Scanner;

public class test {

public static void main(String[] args) {
    System.out.print("Enter a number: ");
    Scanner keyboard = new Scanner(System.in);
    try {
        int x = keyboard.nextInt();
    }
    catch (java.util.InputMismatchException e) {
        main(null);
    }
}

}

于 2020-07-10T01:48:17.443 回答