首页 > 解决方案 > 我将如何做到这一点,以便每当输入一个非整数值时,它会告诉用户输入一个整数值?Java - NetBeans

问题描述

我正在制作一个非常简单的程序,要求用户输入年龄,然后它会计算入场费。到目前为止一切正常,但我想添加一个签入,以便如果用户输入除 int 值以外的任何内容,它会要求他们输入一个 int 值。即,如果他们输入一个字符。

这是我的代码:

public class CalcChargeAge {
    public static void main(String[] args) {       
        
            int x;
            double chargeA = 20;
            double chargeB = 10;
            
            
            System.out.println("Enter Users age to calculate charge for entry. ");
            Scanner in = new Scanner(System.in);
            x = in.nextInt();

            if (x >= 18) {
                System.out.println("Users age is " + x);
                System.out.println("Please pay the charge for entry: £" + chargeA);
            } else if (x >= 12) {
                System.out.println("Users age is " + x);
                System.out.println("Please pay the charge for entry: £" + chargeB);  
            } else {
                System.out.println("Users age is " + x);
                System.out.println("User entry charge is free. Print admission ticket.");
                
            }
        }
    }

标签: java

解决方案


您可以使用该Scanner.hasNextInt()方法检查输入是否为整数,我认为这比捕获异常要好得多。

然后对于完整的实现,您可以将所有内容包装在一个循环中,因此您可以执行以下操作:

Scanner in = new Scanner(System.in);

while(in.hasNext()) {

    if(in.hasNextInt()) {

        int x = in.nextInt();
        // Handle input
        break;
    }
    else {

        // Handle invalid input
        in.next();
    }
}

推荐阅读