📜  Java for-each循环

📅  最后修改于: 2020-09-26 14:24:12             🧑  作者: Mango

在本教程中,我们将借助示例学习Java for-each循环及其与for循环的区别。

在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);
 }
}

输出

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循环更可取的原因。