我正在用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)");
}
}
答案 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。