我正在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/