Realmente luchando por encontrar la respuesta a esto.
Estoy creando un juego en el que pregunta cuántos jugadores hay y el número máximo de jugadores que el usuario puede ingresar es 3 (1, 2 o 3). ¿Esto está creando un bucle for o puedo simplemente ingresar un parámetro en la función de escáner?
Código a continuación:
System.out.println(" How many players are there? "); int numberOfPlayers = scan.nextInt(); Player[] players = new Player[numberOfPlayers]; //this is where the players scores are stored int currentPlayer = 0; //because arrays start at 0: +1 is added for (int i = 0; i < numberOfPlayers; i++) { System.out.println("What is player " + (i + 1) + " called?"); String playerName = scan.next(); players[i] = new Player(playerName);Puede usar nextLine() de Scanner que lee la nueva línea en lugar de next() como se muestra a continuación:
System.out.println(" How many players are there? "); int numberOfPlayers = Integer.parseInt(scan.nextLine()); Player[] players = new Player[numberOfPlayers]; for (int i = 0; i < numberOfPlayers; i++) { System.out.println("What is player " + (i + 1) + " called?"); String playerName = scan.nextLine(); players[i] = new Player(playerName); }Sugiero usar Integer.parseInt(scan.nextLine()) con un bucle, por ejemplo:
int numberOfPlayers = 0; boolean correct = false; do { try { System.out.println(" How many players are there? "); numberOfPlayers = Integer.parseInt(scan.nextLine()); if (numberOfPlayers >= 1 && numberOfPlayers <= 3) { correct = true; } } catch (NumberFormatException e) { } } while (!correct); Entonces, si el usuario ingresa un número incorrecto o un número > 3 o < 1 , le pedirá al usuario que ingrese el número nuevamente hasta que el usuario ingrese el número correcto 1,2,3