首页  >  文章  >  Java  >  Java 中的 For-Each 循环

Java 中的 For-Each 循环

WBOY
WBOY原创
2024-08-30 15:25:221137浏览

Java 从 JDK 5 开始引入了 Foreach 循环。它的目的是按顺序迭代 Collection 或数组的所有元素。在其他语言(如 C#)中也存在这种情况,它使用关键字 for-each。然而,与 C# 不同,Java 使用关键字“for”仅用于实现 for-each 循环,但其语法与传统的 for 循环不同。这种 for-each 循环在 Java 中也称为增强型 for 循环。

开始您的免费软件开发课程

网络开发、编程语言、软件测试及其他

语法:

for(type iter_var : Collection) statement_block

上面使用的每个术语的解释如下:

  1. ‘type’表示
  2. 对象的数据类型
  3. ‘iter_var’表示迭代变量名称,当我们迭代循环时,它存储 Collection 的每个值。
  4. ‘Collection’指定我们要迭代的集合或数组。
  5. “语句块是我们要为循环的每次迭代执行的语句集。

需要注意的是,for-each 循环按顺序访问集合/数组元素,其中它将每个元素的值存储在迭代变量中。以下是 for-each 循环的流程图。

Java 中的 For-Each 循环

正如您所注意到的,for 循环和 for-each 循环之间存在某些细微的差异。 For循环需要预先指定迭代次数。然而,for-each 循环的情况并非如此,因为循环从 Collection/array 的第一个元素迭代到最后一个元素,并且不需要指定迭代次数。

要记住的重要一点是 for-each 循环中指定的类型必须与集合中元素的类型匹配,否则会出现兼容性问题。

Java 中的 For-Each 循环示例

以下是不同的示例:

1. For 循环

让我们使用 for 循环计算一组人的平均年龄:

代码:

public class Main
{
public static void main(String[] args) {
int ages[] = {15, 18, 16, 17, 14, 12, 13, 20, 22, 25};
int sum = 0;
System.out.print("Ages of the group are : "); for (int i = 0; i < 10 ; i++)
{
System.out.print(ages[i]+" "); sum += ages[i];
}
System.out.println("\n Average age of the group = " + (sum/10));
}
}

输出:

Java 中的 For-Each 循环

2. For-Each 循环

使用 for-each 循环查找一组人的平均年龄:

代码:

public class Main
{
public static void main(String[] args) {
int ages[] = {15, 18, 16, 17, 14, 12, 13, 20, 22, 25};
int sum = 0;
System.out.print("Ages of the group are : "); for (int x : ages)
{
System.out.print(x+" "); sum += x;
}
System.out.println("\n Average age of the group = " + (sum/10));
}
}

输出:

Java 中的 For-Each 循环

使用两个循环的输出是相同的,如上图所示。

使用 Break 语句的 Foreach 循环

使用break语句可以减少for-each循环的迭代次数。例如,如果我们只想求前 5 个元素的总和,我们可以使用break语句,如下所示:

代码:

public class Main
{
public static void main(String[] args) {
int ages[] = {15, 18, 16, 17, 14, 12, 13, 20, 22, 25};
int ctr = 0, sum = 0;
System.out.print("Ages of the group are : "); for (int x : ages)
{
System.out.print(x+" ");
}
for (int x : ages)
{
if (ctr == 5) break; sum += x;
ctr += 1;
}
System.out.println("\nSum of age of first 5 people of the group = " + sum);
}
}

输出:

Java 中的 For-Each 循环

在上面提到的 for-each 循环中,x 是迭代变量,每次迭代存储数组的一个元素,该元素在下一次迭代中发生变化。在第一次迭代中,x 存储数组的第一个元素和最后一次迭代元素的最后一个元素。与 for 循环不同,我们使用索引访问数组元素,for 每个循环使用迭代变量来访问元素。

使用 for 每个循环时需要小心,因为迭代变量临时存储数组元素的值,因为它是“只读”的,并且更改其值不会修改原始数组。这与 for 循环相矛盾,在 for 循环中更改元素会修改原始数组。

让我们考虑一个例子,我们将 5 添加到数组的每个元素。我们可以在以下示例代码中发现输出的差异:

不同条件的 For 循环

不同条件下的for循环解释如下:

代码:

public class Main
{
public static void main(String[] args) {
int ages[] = {15, 18, 16, 17, 14, 12, 13, 20, 22, 25};
System.out.print("Elements of the array are : "); for (int i = 0; i < 10; i++)
{
System.out.print(ages[i]+" "); ages[i]+= 5;
}
System.out.print("\nNew elements of the array are : "); for (int i = 0; i < 10; i++)
{
System.out.print(ages[i]+" ");
}
}
}

输出:

Java 中的 For-Each 循环

for 循环的输出显示原始数组的更新

不同条件的 Foreach 循环

不同条件下的for循环解释如下:

代码:

public class Main
{
public static void main(String[] args) {
int ages[] = {15, 18, 16, 17, 14, 12, 13, 20, 22, 25};
System.out.print("Elements of the array are : "); for (int x : ages)
{
System.out.print(x+" "); x += 5;
}
System.out.print("\nNew elements of the array are : "); for (int x : ages)
{
System.out.print(x+" ");
}
}
}

输出:

Java 中的 For-Each 循环

for-each 循环的输出显示原始数组没有更新

关于 Java 中的 For-Each 循环需要记住的事情

  1. Java 中的 For-Each 循环用于迭代序列中的数组/集合元素。
  2. Java 中的 For-Each 循环使用迭代变量来迭代元素的集合或数组。
  3. 修改迭代变量不会修改原始数组/集合,因为它是只读的。
  4. for-each 循环中的类型必须与原始数组/集合元素的类型匹配。
  5. Foreach 循环不需要指定迭代次数,因为它会迭代集合的所有元素。
  6. 可以使用break语句停止for-each循环。

以上是Java 中的 For-Each 循环的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn