我正在编写一个代码,询问用户对播放器名称的输入并将它们存储在数组中。要做到这一点,我使用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时的结果:
请输入球员数量:2
玩家1请输入您的姓名:
玩家2请输入您的姓名:
WA
建立成功(总时间:23秒)
当我在键入“name”后输入enter时输入播放器2的名称,程序就结束了。
答案 0 :(得分:1)
nextInt()没有抓住行尾字符,AKA&#34;输入&#34;输入号码后。相反,您可以使用nextLine()并获取整行,然后将其解析为Integer,如此
int players = Integer.parseInt(reader.nextLine());