在本教程中,我们将借助示例学习Java中另一种形式的for循环,即增强的for循环或for-each循环。
在Java中,在处理数组和集合时,我们可以使用增强形式的for循环。也称为for-each循环。这是因为循环会遍历数组或集合的每个元素。
在了解for-each循环之前,请确保您了解:
为什么在处理数组时优先使用for-each循环,而不是for循环,我们来看下面的示例。
在这里的示例显示了如何使用标准for循环遍历数组的元素。
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
现在,我们将使用for-each循环执行相同的任务。
class AssignmentOperator { public static void main(String[] args) { char[] vowels = {'a', 'e', 'i', 'o', 'u'}; // foreach 循环 for (char item: vowels) { System.out.println(item); } } }
输出:
a e i o u
在这里,我们可以看到两个程序的输出是相同的。
当我们仔细分析这两个程序时,我们可以注意到for-each循环更易于编写,并使我们的代码更具可读性。这就是它被称为增强for循环的原因。
因此,建议尽可能在标准for循环上使用增强的for循环。
我们首先来看一下for-each循环的语法:
for(data_type item : collections) { ... }
这里,
collection -您需要遍历的集合或数组。
item -集合中的单个项目。
对于每个迭代,执行for-each循环,这是for-each循环在Java中的工作方式。
迭代 - 遍历给定集合或数组(collections)中的每个项目,
存储 - 变量(item)中的每个项目
并重复执行循环内的主体语句。
让我们通过一个实例清楚地说明一下。
下面的程序计算整数数组的所有元素的总和。
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循环的执行如下:
迭代 | 值 |
---|---|
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循环
遍历numbers数组中的每个元素
将其存储在number变量中
并执行主体,并将number加到变量sum中,最后得出总数(sum)