我已经构建了该程序从文件中读取用户名。它会检查用户输入的用户名是否在配置文件中。现在,如果它不在文件中,它会问你想创建一个新用户吗?我想要做的是从用户那里进行一些输入验证 - 也就是说,我希望他只能回答Y,肯定回答,N回答不回答,只有5次尝试。无限循环...?
我的问题是某些东西在我的“标记为”循环中无法正常工作。假设只向用户提供5次用户名,但它会永久询问,就像无限循环一样。另外,我希望它只给用户写一次我找不到他的配置文件,所以我把它放在for循环之外,但它在每次迭代中都会显示出来。
任何帮助将被appericiated。
else {
System.out.println("Sorry couldn't find your user profile " + userName + ".");
// If profile wasn't found, ask to create a new one.
search:
for(int i=0; i<5; i++) {
System.out.println("Would you like to create a new user profile now? (Enter Y for yes), (Enter N for no and exit).");
try{
BufferedReader answer = new BufferedReader(new InputStreamReader(System.in));
String addNewUser = answer.readLine();
// If user pressed Y than write the new user name to myFile.txt
if (addNewUser.toLowerCase().startsWith("y")) {
if(addNewUser.length() == 1){
System.out.println("Please enter a new user name:");
BufferedReader readNewUser = new BufferedReader(new InputStreamReader(System.in));
String newUserName = readNewUser.readLine();
PrintWriter write = new PrintWriter("d:\\profile.txt");
write.print(newUserName);
write.close();
break search;
} else {
System.out.println("You've mistyped, please enter only one char:");
break;
}
} else {
System.out.println("You've mistyped, the answer can only be Y or N. Try again:");
}
你能发表更多的代码吗?你在那里的东西似乎是零散的,并没有太多的帮助。 – hwrdprkns
标签的要点是什么?你可以删除它,并且“break;'而不是'break search;'。 –
你的代码*真的很难读取你已经搞砸的缩进...修正缩进可能会使它更清晰。 –