Java for循环怎么用?

文章导读
Previous Quiz Next 在 Java 中,for 循环 是一种重复控制结构,用于执行一段代码块特定次数。当迭代次数已知时,它特别有用,是自动化重复任务的高效方式。
📋 目录
  1. Java for 循环
  2. for 循环的结构
  3. for 循环的执行过程
  4. 流程图
  5. for 循环示例
  6. 嵌套 for 循环
  7. 无限 for 循环
  8. Java for 循环的使用场景
A A

Java - for 循环



Previous
Quiz
Next

在 Java 中,for 循环 是一种重复控制结构,用于执行一段代码块特定次数。当迭代次数已知时,它特别有用,是自动化重复任务的高效方式。

for 循环在 Java 中用于诸如遍历数组、执行计算和处理重复操作等任务。

Java for 循环

Java for 循环 是一种入口控制循环,意思是在执行循环体之前检查给定条件。其结构化的语法使其比其他循环结构(如 while 循环)更易读和简洁。

语法

for 循环的语法如下 −

for(initialization; Boolean_expression; update) {
   // Statements
}

示例

以下示例演示了一个简单的 for 循环,它打印从 1 到 5 的数字:

public class Test {
    public static void main(String[] args) {
        for (int i = 1; i <= 5; i++) {
            System.out.println("Number: " + i);
        }
    }
}

上述代码编译并执行后,将产生以下结果 −

Number: 1
Number: 2
Number: 3
Number: 4
Number: 5

for 循环的结构

Java for 循环由四个基本组成部分构成:

1. 初始化

定义并初始化循环计数器变量。此部分仅在开始时执行一次。

// 初始化示例
int i = 1; // 声明并初始化循环变量

2. 布尔表达式(条件)

在每次迭代前求值。如果条件为 true,则执行循环;如果为 false,则终止循环。

// 条件示例
i <= 5; // 当 i 小于或等于 5 时循环继续

3. 循环体

包含在布尔条件为 true 时重复执行的语句。此部分还可能包括对循环计数器的更新。

// 循环体
System.out.println("Iteration: " + i); // 在每次迭代中执行

4. 更新

在每次迭代结束时修改循环计数器。

// 更新示例
i++; // 每次迭代后 i 递增 1

以下是包含所有四个组成部分的完整 for 循环语法:

for(int i = 1; i <= 5; i++) {
    System.out.println("Iteration: " + i);
}

for 循环的执行过程

以下是 for 循环的控制流程 −

  • 首先执行初始化步骤,且仅执行一次。此步骤允许声明并初始化任何循环控制变量,并以分号 (;) 结束。

  • 接下来,求值布尔表达式。如果为 true,则执行循环体;如果为 false,则不执行循环体,控制跳转到 for 循环之后的下一语句。

  • for 循环执行后,控制跳转回更新语句。此语句允许更新任何循环控制变量。此语句可以留空,仅以分号结束。

  • 再次求值布尔表达式。如果为 true,则执行循环并重复过程(循环体,然后更新步骤,然后布尔表达式)。布尔表达式为 false 后,for 循环终止。

流程图

以下图示显示了 Java 中 for 循环的流程图(执行过程)−

Java For Loop Flow Diagram

for 循环示例

以下是各种示例,演示了 Java 中 for 循环的使用:

示例 1:使用 for 循环打印范围内的数字

在这个示例中,我们展示了使用 for 循环打印从 10 到 19 的数字。这里我们在 for 循环的初始化块中用 10 初始化了一个 int 变量 x。然后在表达式块中,检查 x 小于 20,最后在更新块中,将 x 递增 1。在 for 循环体中,我们打印 x 的值。for 循环将运行直到 x 变为 20。一旦 x 为 20,循环将停止执行,程序退出。

public class Test {

   public static void main(String args[]) {

      for(int x = 10; x < 20; x = x + 1) {
         System.out.print("value of x : " + x );
         System.out.print("\n");
      }
   }
}

上述代码编译并执行后,将产生以下结果 −

value of x : 10
value of x : 11
value of x : 12
value of x : 13
value of x : 14
value of x : 15
value of x : 16
value of x : 17
value of x : 18
value of x : 19

示例 2:使用 for 循环打印数组元素

在这个示例中,我们展示了使用 for 循环打印数组内容。这里我们创建了一个整数数组 numbers 并初始化了一些值。我们创建了一个名为 index 的变量来表示数组的索引,在 for 循环中检查它与数组大小的关系,并将其递增 1。在 for 循环体中,我们使用索引表示法打印数组元素。一旦 index 等于数组大小,for 循环退出,程序结束。

public class Test {

   public static void main(String args[]) {
      int [] numbers = {10, 20, 30, 40, 50};

      for(int index = 0; index < numbers.length; index++) {
         System.out.print("value of item : " + numbers[index] );
         System.out.print("\n");
      }
   }
}

上述代码编译并执行后,将产生以下结果 −

value of item : 10
value of item : 20
value of item : 30
value of item : 40
value of item : 50

嵌套 for 循环

嵌套 for 循环是一个 for 循环在其内部包含另一个 for 循环。

示例

在这个示例中,我们打印从 1 到 10 的数字的乘法表。

public class Main {
  public static void main(String[] args) {
    // 实现嵌套 for 循环
    // 初始化循环计数器 
    int num = 1;
    int i = 1;

    // 外层 for 循环
    for (num = 1; num <= 10; num++) {
      //内层 for 循环
      System.out.print("Table of " + num + " is : ");
      for (i = 1; i <= 10; i++) {
        // 打印乘法表
        System.out.print(num * i + " ");
      }
      // 打印新行
      System.out.println();
    }
  }
}

上述代码编译并执行后,将产生以下结果 −

Table of 1 is : 1 2 3 4 5 6 7 8 9 10 
Table of 2 is : 2 4 6 8 10 12 14 16 18 20 
Table of 3 is : 3 6 9 12 15 18 21 24 27 30 
Table of 4 is : 4 8 12 16 20 24 28 32 36 40 
Table of 5 is : 5 10 15 20 25 30 35 40 45 50 
Table of 6 is : 6 12 18 24 30 36 42 48 54 60 
Table of 7 is : 7 14 21 28 35 42 49 56 63 70 
Table of 8 is : 8 16 24 32 40 48 56 64 72 80 
Table of 9 is : 9 18 27 36 45 54 63 72 81 90 
Table of 10 is : 10 20 30 40 50 60 70 80 90 100 

无限 for 循环

无限循环除非手动按 CTRL + C 停止,否则永不结束。要实现无限 for 循环,可以使用始终为真的条件,或者直接使用 true 作为条件。

示例

在这个示例中,我们使用 for 循环展示无限循环。它会持续打印数字,直到你按 ctrl+c 终止程序。

public class Test {

   public static void main(String args[]) {
      int x = 10;

      for( ;; ) {
         System.out.print("value of x : " + x );
         x++;
         System.out.print("\n");
      }
   }
}

上述代码编译并执行后,会产生以下结果 −

value of item : 10
value of item : 11
value of item : 12
value of item : 13
value of item : 14
...
ctrl+c

Java for 循环的使用场景

Java 中的 for 循环广泛用于重复性任务。以下是一些常见使用场景及其完整示例:

1. 遍历固定范围的数字

当迭代次数已知时,for 循环可以高效执行所需步骤。

public class ForLoopExample {
    public static void main(String[] args) {
        for(int i = 1; i <= 10; i++) {
            System.out.println("Number: " + i);
        }
    }
}

2. 遍历数组和集合

for 循环常用于迭代数组或列表。

public class ArrayTraversal {
    public static void main(String[] args) {
        int[] numbers = {10, 20, 30, 40, 50};
        for(int i = 0; i < numbers.length; i++) {
            System.out.println("Element: " + numbers[i]);
        }
    }
}

3. 实现嵌套循环

它适用于迭代多维结构,如矩阵。

public class NestedLoopExample {
    public static void main(String[] args) {
        for(int i = 1; i <= 3; i++) {
            for(int j = 1; j <= 3; j++) {
                System.out.print(i + "," + j + " ");
            }
            System.out.println();
        }
    }
}

4. 重复执行特定次数的任务

当任务需要重复执行固定次数时,for 循环是理想选择。

public class RepeatTaskExample {
    public static void main(String[] args) {
        for(int i = 0; i < 5; i++) {
            System.out.println("Task executed: " + (i+1));
        }
    }
}

5. 使用增强 for 循环 (for-each)

Java 提供了增强的 for 循环,用于迭代数组和集合。

public class EnhancedForLoopExample {
    public static void main(String[] args) {
        String[] fruits = {"Apple", "Banana", "Cherry"};
        for(String fruit : fruits) {
            System.out.println(fruit);
        }
    }
}