原文: 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循环遍历数组的元素。

  1. class ForLoop {
  2. public static void main(String[] args) {
  3. char[] vowels = {'a', 'e', 'i', 'o', 'u'};
  4. for (int i = 0; i < vowels.length; ++ i) {
  5. System.out.println(vowels[i]);
  6. }
  7. }
  8. }

输出

  1. a
  2. e
  3. i
  4. o
  5. u

现在,我们将使用for-each循环执行相同的任务。

  1. class AssignmentOperator {
  2. public static void main(String[] args) {
  3. char[] vowels = {'a', 'e', 'i', 'o', 'u'};
  4. // foreach loop
  5. for (char item: vowels) {
  6. System.out.println(item);
  7. }
  8. }
  9. }

输出

  1. a
  2. e
  3. i
  4. o
  5. u

在这里,我们可以看到两个程序的输出是相同的。

当我们仔细分析这两个程序时,我们可以注意到for-each循环更易于编写,并使我们的代码更具可读性。 这就是它被称为增强for循环的原因。

因此,建议尽可能在标准for循环上使用增强的for循环。


Java for-each循环

我们首先来看一下每个循环的语法:

  1. for(data_type item : collections) {
  2. ...
  3. }

这里,

  • collections - 您必须循环通过的集合或数组。
  • item - 集合中的单个项目。

for-each循环如何工作?

这是for-each循环在 Java 中的工作方式。 对于每个迭代,for-each循环

  • 迭代遍历给定集合或数组(set)中的每个项目,
  • 每一项存储在一个变量中(item
  • 执行循环的主体。

让我们通过一个例子来阐明它。

示例:for-each循环

下面的程序计算整数数组的所有元素的总和。

  1. class EnhancedForLoop {
  2. public static void main(String[] args) {
  3. int[] numbers = {3, 4, 5, -5, 0, 12};
  4. int sum = 0;
  5. for (int number: numbers) {
  6. sum += number;
  7. }
  8. System.out.println("Sum = " + sum);
  9. }
  10. }

输出

Sum = 19

在以上程序中,for-each循环的执行如下:

迭代
1 number = 3sum = 0 + 3 = 3
2 number = 4sum = 3 + 4 = 7
3 number = 5sum = 7 + 5 = 12
4 number = -5sum = 12 + (-5) = 7
5 number = 0sum = 7 + 0 = 7
6 number = 12sum = 7 + 12 = 19

您可以在每次迭代中看到for-each循环

  • 遍历number数组中的每个元素
  • 将其存储在number变量中
  • 并执行主体,即将number加到sum