有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

如果输入不是整数,java会反复请求用户输入

正如标题所说,如果给定的输入无效,我试图让我的程序重新请求用户输入(在本例中,无效输入是指任何不是整数的输入)

我已经试过了,但不管用:


import java.util.Scanner;

public class Main {



    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);
        System.out.println("Please input your age");

        if (scanner.hasNextInt()) {
            int age = scanner.nextInt();
            System.out.println("Your age is: " + age);
            System.out.println();
        } else {
            System.out.println("This input is not an integer - Please try again!");
            int age = scanner.nextInt();
            System.out.println("Your age is: " + age);
            System.out.println();

        }
    }
}

我的目标是通过while loopscanner

我当前的代码:


import java.util.Scanner;

public class Main {

    public static void main(String[] args) {



        Scanner scanner = new Scanner(System.in);
        System.out.println("Please input your age");


        if (scanner.hasNextInt()) {
            int age = scanner.nextInt();
            System.out.println("Your age is: " + age);

        }
    }
}

非常感谢您对本帖的回复


共 (2) 个答案

  1. # 1 楼答案

    我认为你应该用while代替if语句。输入正确后中断。试试看

  2. # 2 楼答案

    你可以使用while-loop

    Scanner scanner = new Scanner(System.in);
    boolean ageGiven = false;
    
    while (!ageGiven) {
        System.out.println("Please input your age");
        String next = scanner.next();
        try {
            int age = Integer.parseInt(next);
            System.out.println("Your age is: " + age);
            ageGiven = true;
        } catch (NumberFormatException e) {
            System.out.println("This input is not an integer - Please try again!");
        }
    }