源本科技 | 码上会

Java 中的 for 循环

2025/12/25
15
0

学习目标

  • 理解 Java for 循环的基本语法与执行流程

  • 掌握 for 循环在实际编程中的常见应用场景

  • 学会使用嵌套 for 循环处理多维结构

  • 识别并避免无限循环的陷阱

  • 了解 for 循环相较于其他循环的优势


什么是 for 循环?

Java 中的 for 循环是一种控制流语句,它允许根据给定条件重复执行一段代码for 循环特别适用于以下场景:

  • 遍历一个已知范围的数值(如 1 到 100)

  • 多次执行相同操作(如打印 “Hello World” 5 次)

  • 遍历数组或集合中的元素


基础示例:打印数字 1 到 5

// Java 程序演示 for 循环
class Main {
    public static void main(String args[]) {
        // 打印数字 1 到 5
        for (int i = 1; i <= 5; i++) {
            System.out.println("" + i);
        }
        System.out.println("Loop has ended.");
    }
}
1
2
3
4
5
Loop has ended.
  1. 程序开始执行

  2. for 循环初始化 i = 1

  3. 检查条件 i <= 5

    • 若为 true → 执行循环体(打印 i),然后执行 i++

    • 若为 false → 跳出循环,继续执行后续语句

  4. 重复步骤 3,直到 i = 6 时条件失败,循环结束


for 循环的语法结构

for (初始化表达式; 条件表达式; 更新表达式) {
    // 循环体:要重复执行的语句
}

三个核心组成部分

组成部分

说明

示例

初始化表达式

在循环开始前执行一次,通常用于声明和初始化循环变量

int i = 1;

条件表达式

每次循环前检查;若为 true 则继续,否则终止循环

i <= 10

更新表达式

每次循环体执行后运行,用于修改循环变量(如递增或递减)

i++;


执行流程图

for 循环流程图

  1. 开始

  2. 执行 初始化表达式(仅一次)

  3. 判断 条件表达式

    • 若为 → 执行循环体 → 执行更新表达式 → 返回步骤 3

    • 若为 → 跳出循环 → 执行后续代码


实战示例

示例 1:打印数字 1 到 10

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

输出: 1 到 10 的数字,每行一个。


示例 2:打印 Hello World

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

💡 注意:即使只有一条语句,也建议使用大括号 {} 提高可读性和避免错误。


示例 3:计算 1 到 20 的总和

class Main {
    public static void main(String args[]) {
        int sum = 0;
        for (int x = 1; x <= 20; x++) {
            sum = sum + x;  // 或简写为 sum += x;
        }
        System.out.println("Sum: " + sum);
    }
}

输出: Sum: 210(因为 1+2+...+20 = 20×21/2 = 210)


嵌套 for 循环

当一个 for 循环内部包含另一个 for 循环时,称为嵌套循环。常用于处理二维结构,如矩阵、表格等。

示例:打印坐标矩阵

class Main {
    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(); // 换行
        }
    }
}

输出:

(1,1) (1,2) (1,3) 
(2,1) (2,2) (2,3) 
(3,1) (3,2) (3,3) 

✅ 应用场景:打印九九乘法表、遍历二维数组、生成棋盘等。


无限 for 循环

当循环条件永远为真时,就会形成无限循环,程序将一直运行下去(除非手动终止)。

方式一:条件永不为假

class Main {
    public static void main(String args[]) {
        for (int i = 1; i >= 1; i++) {
            System.out.println("Infinite Loop " + i);
        }
    }
}

因为 i 从 1 开始且不断递增,i >= 1 始终成立。

方式二:省略所有表达式

经典写法

public class Main {
    public static void main(String[] args) {
        for (;;) {
            System.out.println("Infinite Loop");
        }
    }
}

for (;;) 是创建无限循环的惯用写法,等价于 while (true)


for 循环的优势

  • 结构清晰:初始化、条件、更新三部分一目了然

  • 控制精准:适合已知迭代次数的场景

  • 高效简洁:比 while 循环更紧凑,减少变量污染

  • 广泛适用:完美支持数组、列表、字符串等遍历操作


重点总结

要点

说明

基本结构

for (init; condition; update) { ... }

执行顺序

初始化 → 条件判断 → 循环体 → 更新 → 再判断

嵌套循环

外层循环每走一步,内层循环完整跑一遍

无限循环

条件永真或 for (;;),需谨慎使用

最佳实践

使用有意义的变量名(如 row, col),避免魔法数字


思考题

  1. 如何使用 for 循环倒序打印数字 10 到 1?请写出代码。

  2. 如果在嵌套循环中使用相同的循环变量名(如内外层都用 i),会发生什么?是否推荐这样做?

  3. 为什么 for (;;) 被认为是创建无限循环的标准写法?它和 while (true) 有何异同?