2012-05-03 39 views
0

請考慮以下代碼中的for(File file : files)。我從來沒有見過這種語法。我從上下文和行爲中瞭解到它是一個基於記錄數量的循環...類似於(for x=0;x<length.foo;++x)。除此之外,我不確定。這是我尚未學習的for循環的縮寫嗎?這是一個專門用於對象的循環嗎?更重要的是,當我想要了解關於特定語法的信息時,我如何描述它?需要援助來解釋繼承代碼中的for語句

CLARIFICATION:第二個問題,我也很好奇這種遞歸文件列表方法如何在file中存儲文件名列表。這是一個數組嗎?一個集合?要麼...?我想知道我需要如何讀取結果文件。

public static void main(String... aArgs) throws FileNotFoundException 
{ 
    File startingDirectory= new File("CGT"); 
    List<File> files = WorkingFileListing2.getFileListingNoSort(startingDirectory); 
    for(File file : files) 
    { 
     System.out.println(file); //print filenames 
    } 
} 

回答

4

這就是所謂的"for each" loop

我也很好奇這種方法如何在file中存儲文件名列表。

它沒有。它遍歷files的元素,依次將它們分配給file(一次一個!)。如果您運行代碼,則循環的每次迭代都會打印一個文件名。

當我想要了解關於特定語法的信息時,我該如何描述它?

Google「java for-each」。

+0

作爲一個主要的C#人,我想我永遠不會首先在Java問題上到達那裏...... – Holf

2

這被稱爲foreach loop它只用於對象,當你不想從數組中刪除對象。