Java Monopoly播放器选择验证

时间:2019-02-09 15:53:57

标签: java

我正在用Java编写一个垄断类型的游戏,并且在设置玩家选择功能的验证时遇到了一些麻烦。用户必须在2-4个玩家之间进行选择。

下面是我尝试使用if else语句和while循环进行此操作的尝试。

我想不出正确的方法来实现这一点,将不胜感激。

int numberPlayers = 0;
Scanner scanner = new Scanner(System.in);
System.out.println("Please enter Number of players (2-4)");

if (scanner.nextInt() >= 2 && scanner.nextInt() <= 4) {
    numberPlayers = scanner.nextInt();
    System.out.println(numberPlayers + " players selected");
} else {
    while (scanner.nextInt() < 2 || scanner.nextInt() > 4) {
        System.out.println("Not a valid choice. Please enter Number of players (2-4)");
    }
}

1 个答案:

答案 0 :(得分:0)

您可以使用do-while循环至少询问用户一次玩家人数,并继续询问直到输入有效为止。

public int askForPlayers(Scanner scanner) {
    int numberPlayers = 0;
    do {
        System.out.println("Please enter Number of players (2-4)");
        numberPlayers = scanner.nextInt();
    } while(numberPlayers < 2 || numberPlayers > 4);
    return numberPlayers;
}

使用Scanner对象时,请记住,用户可能输入的不是数字。您必须使用hasNextInt()next()来处理这种情况。另外,当您关闭Scanner对象时,也将关闭您使用的InputStream,请参见Close a Scanner linked to System.in