public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
String[]repName = new String[5];
double[]salesAmount = new double[5];
System.out.println("Please Enter Sales Reps Name Followed By Monthly Sales: \n");
for (int i = 0 ; i < repName.length; i++ )
{
System.out.print("Sales Rep (Full Name): " );
repName[i] = input.nextLine();
System.out.print("Monthly Sales: € " );
salesAmount[i] = input.nextDouble();
System.out.println();
}
代码只允许我输入一次全名,即John Doe。它不会让我输入数组中的其他双打。这是为什么?
答案 0 :(得分:1)
我收到了你的错误。输入double时,按Enter键。这是一个新的行,而不是另一个名称。然后它期待加倍,但你输入另一个名字。所以你输入的输入不匹配。
input.nextDouble()
后写input.nextLine();
代码应如下所示。
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
String[]repName = new String[5];
double[]salesAmount = new double[5];
System.out.println("Please Enter Sales Reps Name Followed By Monthly Sales: \n");
for (int i = 0 ; i < repName.length; i++ )
{
System.out.print("Sales Rep (Full Name): " );
repName[i] = input.nextLine();
System.out.print("Monthly Sales: € " );
salesAmount[i] = input.nextDouble();
input.nextLine();
System.out.println();
}
}
答案 1 :(得分:0)
我已经运行了你的代码,它运行良好我认为在输入薪水时你还没有按下键盘的Enter键。
我发现你在人名的长度上使用循环。我认为这是错误的。
答案 2 :(得分:0)
解决此问题的一种简单方法是使用下一个方法而不是nextLine。
repName[i] = input.next();