我现在遇到一些代码问题。我试图阻止我正在设计的基于文本的小型游戏的玩家。我写了一个条件以避免用户输入重复的数据。但是我相信我缺少一些东西,但是我不确定会是什么。 这是我的代码:
List<Player> playerList = new ArrayList<>();
String name;
for (int i = 0; i < numberOfPlayers; i++) {
System.out.println("Name of player " + (i + 1));
name = scanner.next();
if (playerList.contains(name)) {
System.out.println("Please enter a different name!");
i--;
}
playerList.add(new Player(name, STARTING_MONEY, 0));
}
return playerList;
关于Java,我是一个完全的新手,所以我可能缺少一些重要的东西,但是经过很深入的搜索后,我似乎找不到答案。任何建议都会有所帮助,谢谢!
答案 0 :(得分:2)
您缺少一个简单的continue
来跳过循环主体的进一步执行。或使用else
仅将播放器添加到列表(如果该名称尚不存在):
任何一个
if (playerList.contains(name)) {
System.out.println("Please enter a different name!");
i--;
continue;
}
或
if (playerList.contains(name)) {
System.out.println("Please enter a different name!");
i--;
} else {
playerList.add(new Player(name, STARTING_MONEY, 0));
}