使用 hasNextInt() 验证用户输入是否为 int,以及它是否介于特定值之间

Verify User Input Is An Int And That It Is Between A Specific Value Using hasNextInt()

提问人:therealslyvegas 提问时间:3/23/2023 最后编辑:therealslyvegas 更新时间:3/23/2023 访问量:29

问:

是否有可能不仅验证用户是否使用 hasNextInt() 输入一个 int,而且还可以验证它也是数字,比如说在 1 和 4 之间,以便之后的开关条件?因此,在达到开关条件之前,我想,一,确保用户不能用随机输入破坏它,二,接收到的输入在 1 到 4 之间。现在我知道有很多方法可以解决这个问题,但我想问大家是否可以用尽可能少的行以这种方式(在 hasNextInt() 的 while 循环条件中)做到这一点?我在这里看到了 hasNextInt() 的不同实现,但仅限于确保它是输入的 int 的程度,仅此而已。

这只是我试图传达的一个概念,如果理论上这样的事情是可能的 while(!input.hasNextInt() && input.nextInt() < 1 && input.nextInt() > 4){...code}

    /// THIS IN A SENSE IS WHAT I COME UP WITH BUT I AM TRYING TO 
    /// SEE IF I CAN CONDENSE THIS WITH THE CONCEPT I STATED ABOVE. I 
    /// DON'T WANT THIS CODE FIXED.
    Scanner input = new Scanner(System.in);
    int selection = 0;

    while(!input.hasNextInt()) {
        System.out.print("Invalid Entry! Only numbers 1 - 4");
        System.out.print("Enter Selection: ");
        input.next;
    }

    selection = input.nextInt();

    boolean flag = true;
    
    while(flag && selection > 0 && selection < 5) {
        if (selection < 1 || selection > 4) {
            System.out.print("Invalid Entry! Only numbers 1 - 4");
            System.out.print("Enter Selection: ");
            while(!input.hasNextInt()) {
               System.out.print("Invalid Entry! Only numbers 1 - 4");
               input.next;
               System.out.print("Enter Selection: ");
            }
        selection = input.nextInt();
        
    }
Java 输入 while 条件语句 套循环

评论


答: 暂无答案