for-each 迴圈 提供了一種機制,能為集合中的每個元素執行一段程式區塊。 有些文件(例如 Oracle 的文件)會把這種迴圈稱為增強式 for 迴圈。
以下是通用語法:
for(declaration: collection) {
body;
}
declaration 會宣告用來儲存從集合指定過來的值的變數。
collection 是陣列或集合,裡面存放著將被指定給迴圈變數的值。
body 包含的敘述,會針對集合中的每個值各執行一次。
例如:
char[] vowels = {'a', 'e', 'i', 'o', 'u'};
for(char vowel: vowels) {
System.out.println(vowel);
}
輸出結果為:
a
e
i
o
u
一般來說,for-each 迴圈會比 for 迴圈更適合,原因如下:
for-each 迴圈保證會疊代過_所有_值。for-each 迴圈更具_宣告式_風格,也就是說,程式碼傳達的是它_在做什麼_,而不是_怎麼做_。for-each 迴圈萬無一失,而使用 for 迴圈時很容易出現 off-by-one 錯誤(想想使用 < 和 <= 的差別)。for-each 迴圈適用於所有集合型別,包括不支援用索引存取元素的集合型別(例如 Set)。