原文: https://www.programiz.com/java-programming/enhanced-for-loop
在本教程中,我们将借助示例学习 Java 中另一种形式的for
循环,称为增强的for
循环或每个循环。
在 Java 中,在处理数组和集合时,我们可以使用增强形式的for
循环。 也称为for-each
循环。 这是因为循环会遍历数组或集合的每个元素。
在了解for-each
循环之前,请确保您了解:
for
循环和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 loop
for (char item: vowels) {
System.out.println(item);
}
}
}
输出:
a
e
i
o
u
在这里,我们可以看到两个程序的输出是相同的。
当我们仔细分析这两个程序时,我们可以注意到for-each
循环更易于编写,并使我们的代码更具可读性。 这就是它被称为增强for
循环的原因。
因此,建议尽可能在标准for
循环上使用增强的for
循环。
Java for-each
循环
我们首先来看一下每个循环的语法:
for(data_type item : collections) {
...
}
这里,
collections
- 您必须循环通过的集合或数组。item
- 集合中的单个项目。
for-each
循环如何工作?
这是for-each
循环在 Java 中的工作方式。 对于每个迭代,for-each
循环
- 迭代遍历给定集合或数组(
set
)中的每个项目, - 将每一项存储在一个变量中(
item
) - 执行循环的主体。
让我们通过一个例子来阐明它。
示例:for-each
循环
下面的程序计算整数数组的所有元素的总和。
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
循环
- 遍历
number
数组中的每个元素 - 将其存储在
number
变量中 - 并执行主体,即将
number
加到sum