为什么循环跳过第一行?

时间:2014-03-18 19:07:02

标签: java loops

这是代码:

Scanner s = new Scanner(System.in);
    System.out.print("Enter the number of lines : ");
    int a = s.nextInt();
    String[] array = new String[a];

    for (int i = 0 ; i < array.length; i++) {
        System.out.print("Enter line " + i + " : ");
        array[i] = s.nextLine();
        System.out.println();
   }

首次运行后(如果a设置为4):

输入行数:4

输入第0行:

输入第1行:test1

输入第2行:test2

输入第3行:test3

它自己滑过0号线..为什么?

1 个答案:

答案 0 :(得分:2)

第一行中未读\n的原因在for循环之前添加nextLine() 假设您的程序输入

4\n
test1\n
test2\n
test3\n
test4\n

在行int a = s.nextInt();中,您从输入中读取了一个整数,a等于4,但\n仍然存在于输入中,可读输入更改为此

\n
test1\n
test2\n
test3\n
test4\n

之后你第一次想要读取一行Scanner向前移动直到达到\n个字符,并且在你的输入中\n是输入中的第一个字符{{1}读取空行,可读输入更改为

Scanner

下一个test1\n test2\n test3\n test4\n 返回readLine并将输入更改为此

test1