2012-11-05 95 views
-3
for (String line = br.readLine(); line != null; line = br.readLine()) 

我知道每一個循環,但在開始和結束的有點糊塗了,我知道br.readline()閱讀文本文件每行。對於每一個循環,閱讀行

+3

這是問題嗎? – SJuan76

+1

'br'是一個'BufferdReader'嗎? – 2012-11-05 08:38:46

+0

那麼,你的問題是什麼? – Konza

回答

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

For loop statements in Java定義as(C & P):

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

當使用這個版本的for語句,請記住:

  • 初始化表達式初始化循環;它會在循環開始時執行一次。
  • 當終止表達式計算結果爲false時,循環終止。
  • 遞增表達式在循環的每次迭代之後被調用;這個表達式增加或減少一個值是完全可以接受的。

所以,在你的表達,要初始化字符串:

String line = br.readLine(); 

循環將結束時,這不會是真的:

line != null; 

那就是:你這樣做之後

line = br.readLine()) 

並得到null