Java Monopoly 玩家选择验证

标签 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)");
    }
}

最佳答案

您可以使用 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 .

关于Java Monopoly 玩家选择验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54607909/

相关文章:

java - AESCrypt 从 Java 到 C#

java - 更改数据库中用户的密码

java - 本地主机/127.0.0.1 :9042] Cannot connect

java - 用于标准操作的 Android Intent,特别是应用程序启动器

java - 使用 lambda 表达式按值类的成员搜索 TreeMap

java - Android:对字符串中的匹配项进行着色

java - 值 setValueAt()

java - 以通用方式重试方法调用

java - FlowLayout 对齐方式更改在 Swing 中不直接可见

java - IVR 风格的对话系统/工作流程/菜单