我正在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)");
}
}
发布于 2019-02-10 03:57:50
您可以使用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。
https://stackoverflow.com/questions/54607909
复制相似问题