在扫描仪上输入一个数字

时间:2015-07-11 09:03:29

标签: java java.util.scanner

我正在尝试创建一个简单的Java程序,用户应该输入他的年龄。如果用户输入了例如字母而不是数字,他将收到一条消息 我想要做的是,除了消息之外,还应该要求用户输入另一个输入,并再次检查该输入以查看它是否为数字。
谁能知道我怎么能实现这个目标呢?

System.out.println("2 - Set The Age");
Scanner b = new Scanner(System.in);

if (b.hasNextDouble()) {
    double lage = b.nextDouble();
    setAge(lage);
    addEmployeeMenu();
} else {
    System.out.println("You should type only numbers!");
}

2 个答案:

答案 0 :(得分:3)

您可以像这样使用while循环

Scanner b = new Scanner(System.in);
double lage;

while (true) {
    System.out.println("2 - Set The Age");
    if(b.hasNextDouble()){
        lage = b.nextDouble();
        break;
    }else b.nextLine();
}

关键是,获取你的号码并在while循环中检查它,只要输入不正确就重复

答案 1 :(得分:0)

您还可以使用NumberFormatException

while (true) {
            System.out.println("Set the age: ");
            String input = sc.next();
            try {
                int x = Integer.parseInt(input);
                System.out.println("Your input '" + x + "' is a integer");
                break;
            } catch (NumberFormatException nFE) {
                System.out.println("Not an Integer");
            }
        }