避免重复输入扫描仪名称

时间:2019-03-13 10:47:13

标签: java

我现在遇到一些代码问题。我试图阻止我正在设计的基于文本的小型游戏的玩家。我写了一个条件以避免用户输入重复的数据。但是我相信我缺少一些东西,但是我不确定会是什么。 这是我的代码:

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,我是一个完全的新手,所以我可能缺少一些重要的东西,但是经过很深入的搜索后,我似乎找不到答案。任何建议都会有所帮助,谢谢!

1 个答案:

答案 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));
}