对于每个循环,读一条线

时间:2012-11-05 08:36:32

标签: java

for (String line = br.readLine(); line != null; line = br.readLine()) 

我知道每个循环但在开始和结束时都很困惑,我知道br.readline()按行读取文本文件。

2 个答案:

答案 0 :(得分:3)

我不知道问题是什么......但

for (String line = br.readLine(); line != null; line = br.readLine()) {
    // do loop
}

相同
String line = br.readLine();
while(line != null) {
    // do loop
    line = br.readLine();
}

但我更喜欢

for(String line; (line = br.readLine()) != null;) {
   // do loop
}

答案 1 :(得分:1)

For loop statements in Java定义为(C& P):

for (<initialization>; <termination>; <increment>) {
    statement(s)
}

使用此版本的for语句时,请记住:

  • 初始化表达式初始化循环;当循环开始时,它被执行一次。
  • 当终止表达式的计算结果为false时,循环终止。
  • 每次迭代循环后调用increment表达式;这个表达式增加或减少一个值是完全可以接受的。

因此,在表达式中,您正在初始化String:

String line = br.readLine(); 

当循环不成立时循环结束:

line != null;

就是:在你做完之后

line = br.readLine()) 

并获取null