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

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

4

2 回答 2

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
}
于 2012-11-05T08:39:08.897 回答
1

中的For循环语句Java定义为 (C&P):

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

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

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

因此,在您的表达式中,您正在初始化一个字符串:

String line = br.readLine(); 

当这不正确时,循环将结束:

line != null;

那就是:在你做之后

line = br.readLine()) 

并得到null.

于 2012-11-05T08:45:54.370 回答