我试图实现一个让玩家选择用户名的方法。该方法建议基于当前运行的操作系统的用户名。现在我想给用户一个选项,如果他/她不满意这个建议,可以更改他的/她的昵称。现在的问题是,我总是必须输入两次我的声明,因为我猜其中一个没有被采纳。
(例如,我必须输入:
“是”
“是”)
我试图在while循环中更改语句(例如,“nameChange.hasNextLine()”)。我试过在“line=nameChange.nextLine();”前后添加“nameChange.nextLine();”(作为一个类似的帖子),但都没有成功。
public class SetUsername implements Runnable {
/**
* Suggests a name based on the accessing OS's user Let's the user change the suggestion to his
* or her own username.
*/
@Override
public void run() {
String name = System.getProperty("user.name");
Scanner nameChange = new Scanner(System.in);
System.out.println("Your username is: " + name + ". Would you like to change it? (y/n)");
String line;
while (true) {
line = nameChange.nextLine();
if (line.equals("y")) {
System.out.println("Chose a new username:");
while(true) {
name = nameChange.nextLine();
System.out.println("Your new username is "+ name);
break;
}
break;
} else if (line.equals("n")) {
break;
} else {
System.out.println("Invalid input. Your username is: " + name + ". "
+ "Would you like to change it? (y/n)");
}
}
send(Command.SET_USERNAME, name);
}
}