我不能在我的阵列中取全名

时间:2015-02-10 15:15:46

标签: java arrays string

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。它不会让我输入数组中的其他双打。这是为什么?

3 个答案:

答案 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();