java - 在java中使用for循环将名称添加到数组中

标签 java for-loop

我正在编写一段代码,要求用户输入玩家姓名并将其存储在数组中。为此,我使用了 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/

相关文章:

java - 如果一个类被标记为@Transactional,是否可以省略通常的事务管理样板代码?

c# - 无法在 C# 中找出这个公式

java - 迭代总和

c - 具有 NULL 条件的 for 循环,为什么 printf();执行?

python - 理解循环中的 if 语句

java - Viewholder的getAdapterPosition和getLayoutPosition始终为-1

java - 带有序列号的 UDP

java - 使用 Tuckey 的 URL 重写过滤器向 URL 添加尾部斜杠

java - 传递对象作为参数

java - 在 ArrayList 中查找项目并输出