在本教程中,我們將借助示例學(xué)習(xí)Java中另一種形式的for循環(huán),即增強(qiáng)的for循環(huán)或for-each循環(huán)。
在Java中,在處理數(shù)組和集合時(shí),我們可以使用增強(qiáng)形式的for循環(huán)。也稱為for-each循環(huán)。這是因?yàn)檠h(huán)會(huì)遍歷數(shù)組或集合的每個(gè)元素。
在了解for-each循環(huán)之前,請(qǐng)確保您了解:
為什么在處理數(shù)組時(shí)優(yōu)先使用for-each循環(huán),而不是for循環(huán),我們來(lái)看下面的示例。
在這里的示例顯示了如何使用標(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
在這里,我們可以看到兩個(gè)程序的輸出是相同的。
當(dāng)我們仔細(xì)分析這兩個(gè)程序時(shí),我們可以注意到for-each循環(huán)更易于編寫,并使我們的代碼更具可讀性。這就是它被稱為增強(qiáng)for循環(huán)的原因。
因此,建議盡可能在標(biāo)準(zhǔn)for循環(huán)上使用增強(qiáng)的for循環(huán)。
我們首先來(lái)看一下for-each循環(huán)的語(yǔ)法:
for(data_type item : collections) { ... }
這里,
collection -您需要遍歷的集合或數(shù)組。
item -集合中的單個(gè)項(xiàng)目。
對(duì)于每個(gè)迭代,執(zhí)行for-each循環(huán),這是for-each循環(huán)在Java中的工作方式。
迭代 - 遍歷給定集合或數(shù)組(collections)中的每個(gè)項(xiàng)目,
存儲(chǔ) - 變量(item)中的每個(gè)項(xiàng)目
并重復(fù)執(zhí)行循環(huán)內(nèi)的主體語(yǔ)句。
讓我們通過(guò)一個(gè)實(shí)例清楚地說(shuō)明一下。
下面的程序計(jì)算整數(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 時(shí), sum = 0 + 3 = 3 |
2 | number = 4 時(shí),sum = 3 + 4 = 7 |
3 | number = 5 時(shí),sum = 7 + 5 = 12 |
4 | number = -5 時(shí),sum = 12 + (-5) = 7 |
5 | number = 0 時(shí),sum = 7 + 0 = 7 |
6 | number = 12 時(shí),sum = 7 + 12 = 19 |
您可以在每次迭代中看到for-each循環(huán)
遍歷numbers數(shù)組中的每個(gè)元素
將其存儲(chǔ)在number變量中
并執(zhí)行主體,并將number加到變量sum中,最后得出總數(shù)(sum)