我不是最好的程序员,并且是一个新手。我已经尝试了好几个小时才能使该程序正确运行,但是我似乎无法想出一种使它按我想要的方式工作的方法。这是我想做的:
编写一个程序,提示用户输入用户名,然后显示“你好,[此处输入名称]!”。
如果用户未输入任何内容,但仍然按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;
}
}