在本教程中,我們將借助示例學(xué)習(xí)Java中另一種形式的for循環(huán),即增強的for循環(huán)或for-each循環(huán)。
在Java中,在處理數(shù)組和集合時,我們可以使用增強形式的for循環(huán)。也稱為for-each循環(huán)。這是因為循環(huán)會遍歷數(shù)組或集合的每個元素。
在了解for-each循環(huán)之前,請確保您了解:
為什么在處理數(shù)組時優(yōu)先使用for-each循環(huán),而不是for循環(huán),我們來看下面的示例。
在這里的示例顯示了如何使用標(biāo)準(zhǔn)for循環(huán)遍歷數(shù)組的元素。
class ForLoop { public static void main(String[] args) { char[] vowels = {'a', 'e', 'i', 'o', 'u'}; for (int i = 0; i < vowels.length; ++ i) { System.out.println(vowels[i]); } } }
輸出:
a e i o u
現(xiàn)在,我們將使用for-each循環(huán)執(zhí)行相同的任務(wù)。
class AssignmentOperator { public static void main(String[] args) { char[] vowels = {'a', 'e', 'i', 'o', 'u'}; // foreach 循環(huán) for (char item: vowels) { System.out.println(item); } } }
輸出:
a e i o u
在這里,我們可以看到兩個程序的輸出是相同的。
當(dāng)我們仔細分析這兩個程序時,我們可以注意到for-each循環(huán)更易于編寫,并使我們的代碼更具可讀性。這就是它被稱為增強for循環(huán)的原因。
因此,建議盡可能在標(biāo)準(zhǔn)for循環(huán)上使用增強的for循環(huán)。
我們首先來看一下for-each循環(huán)的語法:
for(data_type item : collections) { ... }
這里,
collection -您需要遍歷的集合或數(shù)組。
item -集合中的單個項目。
對于每個迭代,執(zhí)行for-each循環(huán),這是for-each循環(huán)在Java中的工作方式。
迭代 - 遍歷給定集合或數(shù)組(collections)中的每個項目,
存儲 - 變量(item)中的每個項目
并重復(fù)執(zhí)行循環(huán)內(nèi)的主體語句。
讓我們通過一個實例清楚地說明一下。
下面的程序計算整數(shù)數(shù)組的所有元素的總和。
class EnhancedForLoop { public static void main(String[] args) { int[] numbers = {3, 4, 5, -5, 0, 12}; int sum = 0; for (int number: numbers) { sum += number; } System.out.println("Sum = " + sum); } }
輸出:
Sum = 19
在上面的程序中,for-each循環(huán)的執(zhí)行如下:
迭代 | 值 |
---|---|
1 | number = 3 時, sum = 0 + 3 = 3 |
2 | number = 4 時,sum = 3 + 4 = 7 |
3 | number = 5 時,sum = 7 + 5 = 12 |
4 | number = -5 時,sum = 12 + (-5) = 7 |
5 | number = 0 時,sum = 7 + 0 = 7 |
6 | number = 12 時,sum = 7 + 12 = 19 |
您可以在每次迭代中看到for-each循環(huán)
遍歷numbers數(shù)組中的每個元素
將其存儲在number變量中
并執(zhí)行主體,并將number加到變量sum中,最后得出總數(shù)(sum)