全部学科
Python全栈
python
NodeJS全栈
nodejs
小程序首页
📅 2026-05-09 6 分钟 ✍️ juanwangdev

for循环

for循环是最常用的循环结构。

for循环语法

基本格式

Java
for (初始化; 条件; 更新) {
    // 循环体
}

// 执行流程:
// 1. 初始化(只执行一次)
// 2. 判断条件
// 3. 条件为true:执行循环体,执行更新,回到步骤2
// 4. 条件为false:结束循环

基本示例

Java
// 打印1到5
for (int i = 1; i <= 5; i++) {
    System.out.println(i);
}
// 输出:1, 2, 3, 4, 5

for循环执行流程

执行顺序

Java
初始化 → 条件判断 → 循环体 → 更新 → 条件判断 → ...
       ↓
    条件为false → 结束循环

执行过程示例

Java
for (int i = 1; i <= 3; i++) {
    System.out.println(i);
}

// 执行过程:
// 1. i = 1(初始化)
// 2. i <= 3 ? true → 执行循环体(输出1)
// 3. i++ → i = 2
// 4. i <= 3 ? true → 执行循环体(输出2)
// 5. i++ → i = 3
// 6. i <= 3 ? true → 执行循环体(输出3)
// 7. i++ → i = 4
// 8. i <= 3 ? false → 结束循环

for循环组成部分

初始化部分

Java
// 常见初始化
for (int i = 0; i < 10; i++) { }  // 声明并初始化

int j = 0;
for (; j < 10; j++) { }  // 使用已有变量,初始化省略

// 多个初始化
for (int i = 0, j = 10; i < j; i++, j--) { }

条件部分

Java
// 常见条件
for (int i = 0; i < 10; i++) { }   // i < 10
for (int i = 0; i <= 10; i++) { }  // i <= 10

// 无限循环(省略条件)
for (int i = 0; ; i++) {
    // 需要break退出
}

更新部分

Java
// 常见更新
for (int i = 0; i < 10; i++) { }   // 递增
for (int i = 10; i > 0; i--) { }   // 递减

for (int i = 0; i < 10; i += 2) { }  // 步长2

// 空更新(需在循环体修改)
for (int i = 0; i < 10; ) {
    i++;  // 手动更新
}

for循环应用

遍历数组

Java
int[] arr = {1, 2, 3, 4, 5};

// 遍历数组
for (int i = 0; i < arr.length; i++) {
    System.out.println(arr[i]);
}

计数循环

Java
// 累加求和
int sum = 0;
for (int i = 1; i <= 100; i++) {
    sum += i;
}
// sum = 5050

// 统计个数
int count = 0;
for (int i = 1; i <= 100; i++) {
    if (i % 2 == 0) {  // 统计偶数
        count++;
    }
}
// count = 50

嵌套循环

Java
// 打印九九乘法表
for (int i = 1; i <= 9; i++) {
    for (int j = 1; j <= i; j++) {
        System.out.print(i + "*" + j + "=" + i*j + " ");
    }
    System.out.println();
}

// 遍历二维数组
int[][] matrix = {{1,2,3}, {4,5,6}};
for (int i = 0; i < matrix.length; i++) {
    for (int j = 0; j < matrix[i].length; j++) {
        System.out.println(matrix[i][j]);
    }
}

倒序循环

Java
// 从大到小
for (int i = 10; i > 0; i--) {
    System.out.println(i);
}

// 倒序遍历数组
int[] arr = {1, 2, 3, 4, 5};
for (int i = arr.length - 1; i >= 0; i--) {
    System.out.println(arr[i]);
}

增强for循环(for-each)

for-each语法

Java
for (类型 变量 : 数组或集合) {
    // 使用变量
}

// 简化遍历,无需索引

for-each示例

Java
int[] arr = {1, 2, 3, 4, 5};

// for-each遍历
for (int num : arr) {
    System.out.println(num);
}

// 遍历集合
List<String> list = Arrays.asList("a", "b", "c");
for (String str : list) {
    System.out.println(str);
}

for-each特点

  • 简洁语法,无需索引
  • 只读遍历,不能修改元素
  • 顺序遍历,不能跳过
  • 无法获取索引
Java
int[] arr = {1, 2, 3};

// for-each不能修改原数组
for (int num : arr) {
    num = num * 2;  // 只修改num变量,不影响arr
}
// arr仍是{1, 2, 3}

// 需要修改用普通for
for (int i = 0; i < arr.length; i++) {
    arr[i] = arr[i] * 2;
}

for循环变体

省略初始化

Java
int i = 0;
for (; i < 10; i++) {
    System.out.println(i);
}

省略条件(无限循环)

Java
for (int i = 0; ; i++) {
    if (i >= 10) break;  // 需要break退出
    System.out.println(i);
}

省略更新

Java
for (int i = 0; i < 10; ) {
    System.out.println(i);
    i++;  // 循环体中更新
}

全省略(无限循环)

Java
for (;;) {
    // 无限循环,需break退出
    if (condition) break;
}

循环变量作用域

变量作用域限于循环内

Java
for (int i = 0; i < 10; i++) {
    // i只在循环内有效
}
// System.out.println(i);  // 错误:i不可访问

// 循环外定义变量
int j;
for (j = 0; j < 10; j++) {
    // ...
}
System.out.println(j);  // 正确:j为10

for循环控制

break跳出循环

Java
for (int i = 1; i <= 10; i++) {
    if (i == 5) {
        break;  // 跳出循环
    }
    System.out.println(i);
}
// 输出:1, 2, 3, 4

continue跳过当前

Java
for (int i = 1; i <= 5; i++) {
    if (i == 3) {
        continue;  // 跳过本次,继续下次
    }
    System.out.println(i);
}
// 输出:1, 2, 4, 5(跳过3)

for循环最佳实践

循环次数明确时用for

Java
// 已知循环次数:用for
for (int i = 0; i < 100; i++) {
    // 处理100次
}

// 不确定次数:用while
while (hasMoreData()) {
    process();
}

避免在循环内修改循环变量

Java
// 不推荐:循环内修改循环变量
for (int i = 0; i < 10; i++) {
    i = 5;  // 干扰循环逻辑
}

// 推荐:只依赖更新部分
for (int i = 0; i < 10; i++) {
    // 使用i,不修改i
}

使用for-each简化遍历

text
// 只读遍历:for-each简洁
for (String item : list) {
    System.out.println(item);
}

// 需要索引或修改:普通for
for (int i = 0; i < list.size(); i++) {
    list.set(i, process(list.get(i)));
}

要点总结

  • for(初始化; 条件; 更新) {循环体}
  • 初始化执行一次,条件每次判断,更新每次执行
  • 条件为true继续,false结束
  • 循环变量作用域限于循环内
  • 索引从0开始:i < length
  • 索引从1开始:i <= length
  • 增强for循环简化遍历(只读)
  • for-each不能修改原数组
  • 省略条件为无限循环
  • 需要索引用普通for,只读用for-each
  • 嵌套for处理多维结构
  • break跳出,continue跳过

📝 发现内容有误?点击此处直接编辑

← 上一篇 do-while循环
下一篇 → if-else语句
想查看更多题目和详细解析?
小程序提供完整的题库、模拟考试和详细解析
马上就来

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库