For-each 循环 Java

⚡ 智能摘要

For-each 循环 Java `for-each` 是 for 循环的一种简化形式,用于遍历数组和列表,而无需计数器或索引。本文解释了 `for-each` 的语法,将其与传统的 for 循环进行比较,并提供了一个完整的示例及其预期输出。

  • 🔁 目的: for-each 循环直接遍历数组或列表的每个元素,从而减少代码量。
  • 🧮 无计数器: 与传统的 for 循环不同,for-each 循环不需要索引、条件或增量。
  • 🧩 语法: 声明一个类型与集合匹配的临时变量,然后声明要迭代的集合。
  • 比较: 该示例显示了基于计数器的循环和 for-each 循环的相同输出。
  • ⚠️ 局限性: for-each 循环不提供索引,因此无法轻易修改底层元素。

For-each 循环 Java

Java For-Each 数组

for-each 循环是 for 循环的另一种形式,用于遍历数组。for-each 循环显著减少了代码量,并且循环中不需要使用索引(或者更准确地说是计数器)。

语法:

for (<DataType of array/List> <Temp variable name> : <Array/List to be iterated>) {
    System.out.println();
    // Any other operation can be done with this temp variable.
}

循环/迭代数组 Java

让我们使用一个字符串数组来举例,您想要在不使用任何计数器的情况下对其进行迭代。考虑一个字符串数组 arrData 的初始化方式如下:

String[] arrData = {"Alpha", "Beta", "Gamma", "Delta", "Sigma"};

虽然你可能知道一些方法,比如找到 排列 然后使用传统的 for 循环(计数器、条件和增量)遍历数组的每个元素,我们需要一种更优化的方法,该方法不会使用任何此类计数器。

这是“for”循环的常规方法:

for (int i = 0; i < arrData.length; i++) {
    System.out.println(arrData[i]);
}

你可以看到计数器的用法,以及它作为数组索引的用法。 Java 提供一种使用“for”循环遍历数组每个元素的方法。

以下是之前声明的数组的代码:

for (String strTemp : arrData) {
    System.out.println(strTemp);
}

你可以看到循环之间的区别。代码量显著减少了。此外,循环中不再使用索引(或者更确切地说是计数器)。请确保 for-each 循环中声明的数据类型与目标数据类型匹配。 数组列表 你正在迭代。

对于每个循环示例

这里是全班同学对上述解释的演示:

class UsingForEach {
  public static void main(String[] args) {
    String[] arrData = {"Alpha", "Beta", "Gamma", "Delta", "Sigma"};
    //The conventional approach of using the for loop
    System.out.println("Using conventional For Loop:");
    for(int i=0; i< arrData.length; i++){
      System.out.println(arrData[i]);
    }
    System.out.println("\nUsing Foreach loop:");
    //The optimized method of using the for loop - also called the foreach loop
    for (String strTemp : arrData){
      System.out.println(strTemp);
    }
  }
}

迭代数组 Java

预期产量:

Using conventional For Loop:
Alpha
Beta
Gamma
Delta
Sigma

Using Foreach loop:
Alpha
Beta
Gamma
Delta
Sigma

常见问题

是的。AI 助手可以将基于索引的循环重构为 for-each 循环,这样就不需要索引了。但是,您仍然应该检查那些依赖索引进行位置或元素修改的情况。

当索引未使用时,AI 工具通常会建议使用 for-each 循环以提高可读性,而 keeping 索引循环中,元素的位置或修改至关重要。具体选择取决于任务需求。

传统的 for 循环使用计数器和索引来控制迭代。而 for-each 循环直接遍历每个元素,无需计数器,虽然提高了代码的可读性,但却无法提供元素访问的索引。

更改循环变量不会更新底层数组元素,因为它保存的是值的副本。要就地修改元素,请使用带有索引的传统 for 循环。

总结一下这篇文章: