在 Java 中,for-each 循环用于遍历 数组和 集合(如 ArrayList)的元素。它也被称为增强 for 循环。
for-each 循环语法
Java for-each 循环的语法是
for(dataType item : array) {
...
}
这里,
- array - 数组或集合
- item - 数组/集合的每个元素都赋给此变量
- dataType - 数组/集合的 数据类型
示例 1:打印数组元素
// print array elements
class Main {
public static void main(String[] args) {
// create an array
int[] numbers = {3, 9, 5, -5};
// for each loop
for (int number: numbers) {
System.out.println(number);
}
}
}
输出
3 9 5 -5
在这里,我们使用 for-each 循环逐个打印 numbers 数组的每个元素。
- 在第一次迭代中,item 将是 3。
- 在第二次迭代中,item 将是 9。
- 在第三次迭代中,item 将是 5。
- 在第四次迭代中,item 将是 -5。
示例 2:计算数组元素之和
// Calculate the sum of all elements of an array
class Main {
public static void main(String[] args) {
// an array of numbers
int[] numbers = {3, 4, 5, -5, 0, 12};
int sum = 0;
// iterating through each element of the array
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 |
如我们所见,我们在每次循环迭代中将 numbers 数组的每个元素加到 sum 变量中。
for 循环与 for-each 循环的比较
让我们看看 for-each
循环与常规 Java for 循环有何不同。
1. 使用 for 循环
class Main {
public static void main(String[] args) {
char[] vowels = {'a', 'e', 'i', 'o', 'u'};
// iterating through an array using a for loop
for (int i = 0; i < vowels.length; ++ i) {
System.out.println(vowels[i]);
}
}
}
输出:
a e i o u
2. 使用 for-each 循环
class Main {
public static void main(String[] args) {
char[] vowels = {'a', 'e', 'i', 'o', 'u'};
// iterating through an array using the for-each loop
for (char item: vowels) {
System.out.println(item);
}
}
}
输出:
a e i o u
在这里,两个程序的输出是相同的。但是,for-each 循环更容易编写和理解。
这就是为什么在处理数组和集合时,for-each 循环比 for 循环更受青睐。