我不是最好的程序员,并且是一个新手。我已经尝试了好几个小时才能使该程序正确运行,但是我似乎无法想出一种使它按我想要的方式工作的方法。这是我想做的:

编写一个程序,提示用户输入用户名,然后显示“你好,[此处输入名称]!”。

如果用户未输入任何内容,但仍然按Enter键,则应重新提示输入用户名。该流程应如下所示:

Whats is your name?
Please Enter your name:
Please Enter your name: Programming Practice
Hello, Programming Practice!


在开始在IDE中编写任何内容之前,我是如何考虑该程序的:


向用户询问他们的名字
给他们机会输入他们的名字
如果他们的输入不是名字格式,给他们输出说不正确的格式
给他们机会以正确的格式输入
重复执行步骤4和5多次,以使它们输入正确的格式
打印“您好,[在这里命名]!”
结束


到目前为止,这是我得到的:

package lol;
import java.util.Scanner;
public class Whatever {

    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);

        System.out.printf("What is your name?\n");

        String name = sc.nextLine();

        if (name != "Programming Practice")
        {
            System.out.println("Please enter a valid name");
            String name2 = sc.nextLine();
            System.out.println("Hello, " + name2 );
        }

        else
        {

        System.out.println("Hello, " + name );
        }

    }
}


现在无论我输入什么,我得到的输出是:

What is your name?

Please enter a valid name

Hello,

最佳答案

您可以将sc.nextLine()放入while(true)循环中,并在获得认为有效的结果时中断。

String name = "";

while(true) {
    name = sc.nextLine();
    if (name.equals("Programming Practice")) {
        System.out.println("Hello, " + name);
        break;
    } else {
        System.out.println("Please enter in the correct format");
        continue;
    }
}

10-07 19:30
查看更多