2016-10-02 52 views
-2

我用這如何閱讀這行代碼

while ((nextLine = br.readNext()) != null) { 

相當頻繁,但我真的不明白。
它是上傳csv文件的代碼的一部分。
基本上我想知道,熱的閱讀它。
Nextline定義爲:String[] nextLine;

回答

3

環路部分很簡單:

while (____ != null) { 

它會不斷循環,而____不等於null。因此,讓我們來看看什麼____做:

(nextLine = br.readNext()) 

該代碼是一個assignemnt:它要求br.readNext()並將結果nextLine分配。關鍵是分配的結果是分配的值。

所以:

  • 如果br.readNext()返回的東西是不是null,它被分配到nextLine和代碼進入循環體。

  • 如果br.readNext()回報null,它就會被分配到nextLine,循環終止,因爲null != null是假的。

2

while ((nextLine = br.readNext()) != null) { 

利用這樣的事實,一個「分配」也是一個「表達」具有值的優勢 - 所分配的值。

所以線,從括號裏面出來讀,執行以下操作:爲對象br

  1. 電話readNext();
  2. 將呼叫結果分配給nextLine;
  3. 測試分配給null的值;
  4. 如果它null,它跳過while循環的主體,到7。
  5. 如果null,它執行while循環體;
  6. 然後再回到1.
  7. 它繼續該程序。