【发布时间】:2021-07-04 13:46:26
【问题描述】:
我正在用 java 创建一个游戏。我已经编写了一个单独的方法来捕获正在玩的玩家数量(这是有效的),并且通过下面的方法我试图捕获他们的名字,将其打印到屏幕上,并将它们放在一个 ArrayList 中。
public void addPlayers(Scanner scanner) {
this.players = new ArrayList<Player>();
int playerNumber = 1;
String playerName = null;
for (int loop = 0; loop <= getNumberOfPlayers(); loop++) {
System.out.println("Player number " + playerNumber++ + ", please type your name");
playerName = scanner.nextLine();
System.out.println("your name is: " + playerName);
}
}
有四个玩家在玩,这是我输出到屏幕时返回的数字 System.out.println(this.numberOfPlayers),所以我知道 getNumberOfPlayers() 是正确的。
这是我通过 addPlayers 方法得到的输出:
Player number 1, please type your name
your name is:
Player number 2, please type your name
john
your name is: john
Player number 3, please type your name
sally
your name is: sally
Player number 4, please type your name
fred
your name is: fred
Player number 5, please type your name
eric
your name is: eric
我当前的代码使玩家 1 无法输入他们的姓名,并从循环中输出 5 个玩家。
我想要发生的事情:
Player number 1, please type your name
fred
your name is: fred
Player number 2, please type your name
john
your name is: john
Player number 3, please type your name
sally
your name is: sally
Player number 4, please type your name
mary
your name is: mary
任何帮助将不胜感激。
【问题讨论】:
-
您可以使用
loop < getNumberOfPlayers()修复循环。 -
两个问题:你从 0 循环到 4,产生 5 个玩家。并且在输入玩家人数时还剩下一个 CR,所以第一个scanner.nextline() 立即给出了空字符串
标签: java for-loop arraylist iteration java.util.scanner