我正在编写一段代码,要求用户输入玩家姓名并将其存储在数组中。为此,我使用了 for 循环,我认为这会更有效,但是,代码似乎做了一些意想不到的事情,而且我不明白为什么它会这样做。下面是代码和结果:
Scanner reader = new Scanner (System.in);
System.out.print("Please enter the number of players:");
int players = reader.nextInt();
String[] player_name = new String[players+1];//Array to store player names
for (int i = 0; i < players; i++)//Loop to ask players their name
{
System.out.print("Player " + (i+1) + " please enter your name:\n");//Asks player names one by one
player_name[i] = reader.nextLine();//Saves the player names to the array
}
这是玩家数量为 2 时的结果:
Please enter the number of players:2
Player 1 please enter your name:
Player 2 please enter your name:
wa
BUILD SUCCESSFUL (total time: 23 seconds)
当我在输入“name”wa后按回车键输入玩家2的名字时,程序就结束了。
最佳答案
nextInt() 不会获取行尾字符,即输入数字后的“输入”。相反,您可以使用 nextLine() 并获取整行,然后将其解析为整数,如下所示
int players = Integer.parseInt(reader.nextLine());
关于java - 在java中使用for循环将名称添加到数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49699883/