多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# Java `for-each`循环(增强循环) > 原文: [https://www.programiz.com/java-programming/enhanced-for-loop](https://www.programiz.com/java-programming/enhanced-for-loop) #### 在本教程中,我们将借助示例学习 Java 中另一种形式的`for`循环,称为增强的`for`循环或每个循环。 在 Java 中,在处理数组和集合时,我们可以使用增强形式的`for`循环。 也称为`for-each`循环。 这是因为循环会遍历数组或集合的每个元素。 在了解`for-each`循环之前,请确保您了解: * [Java `for`循环](/java-programming/for-loop "Java for Loop") * [Java 数组](/java-programming/arrays "Java Arrays") * [Java 集合](/java-programming/collections "Java Collections") * * * ## `for`循环和`for-each`循环之间的区别 要知道在处理数组时为什么`for-each`循环比`for`循环更受青睐,我们来看下面的示例。 这里的示例显示了如何使用标准`for`循环遍历数组的元素。 ```java 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]); } } } ``` **输出**: ```java a e i o u ``` 现在,我们将使用`for-each`循环执行相同的任务。 ```java 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); } } } ``` **输出**: ```java a e i o u ``` 在这里,我们可以看到两个程序的输出是相同的。 当我们仔细分析这两个程序时,我们可以注意到`for-each`循环更易于编写,并使我们的代码更具可读性。 这就是它被称为增强`for`循环的原因。 因此,建议尽可能在标准`for`循环上使用增强的`for`循环。 * * * ## Java `for-each`循环 我们首先来看一下每个循环的语法: ```java for(data_type item : collections) { ... } ``` 这里, * `collections` - 您必须循环通过的集合或数组。 * `item` - 集合中的单个项目。 * * * ## `for-each`循环如何工作? 这是`for-each`循环在 Java 中的工作方式。 对于每个迭代,`for-each`循环 * **迭代**遍历给定集合或数组(`set`)中的每个项目, * **将**每一项存储在一个变量中(`item`) * **执行循环的主体。** 让我们通过一个例子来阐明它。 ## 示例:`for-each`循环 下面的程序计算整数数组的所有元素的总和。 ```java 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); } } ``` **输出**: ```java 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`