在Java中, for-each循环用于遍历数组和集合的元素(例如ArrayList)。它也被称为增强的for循环。
每个循环的Sytnax
Java for-each循环的语法为:
for(dataType item : 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循环来逐一打印数字数组的每个元素。
- 在第一次迭代中, item将为3。
- 在第二次迭代中, item将为9。
- 在第三次迭代中, item将为5。
- 在第四次迭代中, 项目将为-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);
}
}
// 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
循环的执行如下:
Iteration | Variables |
---|---|
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循环vs 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循环更可取的原因。