首页 > 解决方案 > 使用扫描仪在while循环中重复条件为真的命令

问题描述

我如何获得下面的代码来重复命令,其中球员的名字已经存在于密钥集中?

public static Map<String, Player> players = new TreeMap<>();

 for (int loop = 1; loop <= 4; loop++) {
        
        System.out.println("enter player"+loop+"s name");
        name = scanner.next();
        if(players.keySet().contains(name)) {
            System.out.println("name in use - enter new name");
        }else {
            players.put(name, new Player());
        }
        
        
    }

标签: java

解决方案


您可以使用变量(例如boolean alreadyExists,如下面的代码所示)来跟踪有效输入并在输入无效的情况下循环返回。

boolean alreadyExists;

for (int loop = 1; loop <= 4; loop++) {
    do {
        alreadyExists = false;
        System.out.println("enter player" + loop + "s name");
        name = scanner.next();
        if (players.keySet().contains(name)) {
            System.out.println("name in use - enter new name");
            alreadyExists = true;
        } else {
            players.put(name, new Player());
        }
    } while (alreadyExists);
}

推荐阅读