尝试重复直到条件为假

A.B*_*und 2 java while-loop

我正在尝试创建一个循环,直到用户输入正确的信息(没有空格或空白)为止。这是我到目前为止所拥有的,但它只重复一次。我希望它重复直到用户填写正确的名称,例如 Oskar/OSKAR/oskar

    System.out.print("Name: ");
    String name = scanner.nextLine();
    name = name == null ? "" : name.trim();
    while(name.isEmpty()) {
        System.out.println("Wrong data");
        System.out.print("Name: ");
        String name1 = scanner.nextLine();
        name = name1;
    }
Run Code Online (Sandbox Code Playgroud)

Wal*_*erM 5

您需要使用do/while循环,这样您就不会两次编写相同的代码:

Scanner scanner = new Scanner(System.in);

String name = null;
do { //use do while loop for this
    if (name != null)
        System.out.println("Invalid Name \"" + name + "\" Try again");

    System.out.print("Enter Your Name: ");
    name = scanner.nextLine();

    //keep looping until name is only letters
} while (!name.matches("[A-Za-z]+"));

System.out.println("Welcome " + name);
Run Code Online (Sandbox Code Playgroud)

输出:

输入你的名字:
无效的名字“”再试一次
输入你的名字:a1
无效的名字“a1”再试一次
输入你的名字:1
无效的名字“1”再试一次
输入你的名字:奥斯卡
欢迎奥斯卡