我已经构建了这个程序来从文件中读取用户名.它会检查用户输入的用户名是否在配置文件中.现在,如果它不在文件中,它会要求您创建新用户吗?我正在尝试做的是来自用户的一些输入验证 - 意思是,我希望他能够回答只有Y表示是,N表示否,并且只有5次尝试.
我的问题是,在"标记为"循环中,某些内容无法正常工作.它假设只询问用户他的用户名5次,但它永远要求,就像一个无限循环.另外,我希望它只向用户写一次我找不到他的个人资料,所以我把它放在for循环之外,但它会在每次迭代中显示出来.
任何帮助都会被暗示.
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:");
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
342 次 |
| 最近记录: |