为什么首先跳过循环迭代?

Lek*_*eke 0 java

我的代码产生了意想不到的结果.似乎我的for循环跳过第一次迭代,我不明白为什么.

public static void main(String[] args) {

    Scanner get = new Scanner(System.in);
    int number;

    // Ex.1.

    String family_name;
    String[] family_array;

    System.out.println("Enter number of family members: ");
    number = get.nextInt();
    family_array = new String[number];

    for(int i = 0; i < number; i++){
        System.out.println("Enter family member name: ");
        family_name = get.nextLine();
        family_array[i] = family_name;
    }

    for(int i = 0; i < number; i++){
        System.out.println(family_array[i]);
    }

}
Run Code Online (Sandbox Code Playgroud)

返回...(假装数字输入是名称)

Enter number of family members: 
5
Enter family member name: 
Enter family member name: 
1
Enter family member name: 
2
Enter family member name: 
3
Enter family member name: 
4

1
2
3
4
Run Code Online (Sandbox Code Playgroud)

为什么跳过第一个get.nextLine()?

Rei*_*eus 5

目前您的调用扫描仪#nextInt所以它正在通过传递给你的第一个电话是不消耗换行符Scanner#nextLine,所以并没有阻止.

你需要添加

get.nextLine();
Run Code Online (Sandbox Code Playgroud)

打电话后nextInt,你的第一个电话nextLine会阻止IO.