Skip to content

7.1 for 循环

for 循环的概念

for 循环是 Java 中最常用的循环结构之一,它用于重复执行一段代码,直到满足特定条件。for 循环特别适合已知循环次数的场景。

for 循环的语法

java
for (初始化表达式; 条件表达式; 更新表达式) {
    // 循环体:需要重复执行的代码
}
  • 初始化表达式:在循环开始前执行一次,用于初始化循环变量
  • 条件表达式:每次循环开始前检查,返回布尔值,为 true 时执行循环体,为 false 时结束循环
  • 更新表达式:每次循环体执行完毕后执行,用于更新循环变量
  • 循环体:需要重复执行的代码块

for 循环的执行流程

  1. 执行初始化表达式
  2. 检查条件表达式:
    • 如果为 true,执行循环体
    • 如果为 false,结束循环
  3. 执行更新表达式
  4. 重复步骤 2-3,直到条件表达式为 false

for 循环的使用

基本用法

java
public class ForLoopExample {
    public static void main(String[] args) {
        // 打印 1 到 5
        for (int i = 1; i <= 5; i++) {
            System.out.println("i = " + i);
        }
    }
}

输出结果:

i = 1
i = 2
i = 3
i = 4
i = 5

示例:计算 1 到 100 的和

java
public class SumExample {
    public static void main(String[] args) {
        int sum = 0;
        for (int i = 1; i <= 100; i++) {
            sum += i;
        }
        System.out.println("Sum of 1 to 100: " + sum);
    }
}

输出结果:

Sum of 1 to 100: 5050

示例:遍历数组

java
public class ArrayLoopExample {
    public static void main(String[] args) {
        int[] numbers = {1, 2, 3, 4, 5};
        for (int i = 0; i < numbers.length; i++) {
            System.out.println("numbers[" + i + "] = " + numbers[i]);
        }
    }
}

输出结果:

numbers[0] = 1
numbers[1] = 2
numbers[2] = 3
numbers[3] = 4
numbers[4] = 5

示例:使用 for-each 循环遍历数组

for-each 循环(也称为增强型 for 循环)是 Java 5 引入的一种简化的循环方式,专门用于遍历数组和集合。

java
public class ForEachExample {
    public static void main(String[] args) {
        int[] numbers = {1, 2, 3, 4, 5};
        for (int number : numbers) {
            System.out.println("Number: " + number);
        }
    }
}

输出结果:

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

for 循环的变体

1. 省略初始化表达式

java
int i = 0;
for (; i < 5; i++) {
    System.out.println("i = " + i);
}

2. 省略条件表达式

java
for (int i = 0; ; i++) {
    if (i >= 5) {
        break;
    }
    System.out.println("i = " + i);
}

3. 省略更新表达式

java
for (int i = 0; i < 5; ) {
    System.out.println("i = " + i);
    i++;
}

4. 省略所有表达式

java
int i = 0;
for (;;) {
    if (i >= 5) {
        break;
    }
    System.out.println("i = " + i);
    i++;
}

for 循环的应用场景

1. 固定次数的循环

java
// 打印 10 次 "Hello"
for (int i = 0; i < 10; i++) {
    System.out.println("Hello");
}

2. 遍历数组或集合

java
// 遍历字符串数组
String[] names = {"Alice", "Bob", "Charlie"};
for (int i = 0; i < names.length; i++) {
    System.out.println("Name: " + names[i]);
}

// 使用 for-each 遍历
for (String name : names) {
    System.out.println("Name: " + name);
}

3. 数值计算

java
// 计算阶乘
int n = 5;
int factorial = 1;
for (int i = 1; i <= n; i++) {
    factorial *= i;
}
System.out.println(n + "! = " + factorial);

示例:for 循环的使用

java
public class ForLoopApplication {
    public static void main(String[] args) {
        // 打印乘法表
        System.out.println("Multiplication Table:");
        for (int i = 1; i <= 9; i++) {
            for (int j = 1; j <= i; j++) {
                System.out.print(j + " × " + i + " = " + (i * j) + "\t");
            }
            System.out.println();
        }
        
        // 计算斐波那契数列的前 10 项
        System.out.println("\nFibonacci Sequence:");
        int a = 0, b = 1;
        System.out.print(a + " " + b + " ");
        for (int i = 3; i <= 10; i++) {
            int c = a + b;
            System.out.print(c + " ");
            a = b;
            b = c;
        }
        System.out.println();
        
        // 查找数组中的最大值
        int[] numbers = {5, 3, 9, 1, 7, 2, 8};
        int max = numbers[0];
        for (int number : numbers) {
            if (number > max) {
                max = number;
            }
        }
        System.out.println("\nMaximum value: " + max);
    }
}

常见问题

1. 循环条件错误

症状:循环次数不符合预期,可能导致无限循环或循环次数过少

解决方案:仔细检查循环条件,确保它能够在适当的时候变为 false

2. 循环变量更新错误

症状:循环变量没有正确更新,可能导致无限循环

解决方案:确保在循环体或更新表达式中正确更新循环变量

3. 数组索引越界

症状:运行时错误:ArrayIndexOutOfBoundsException

解决方案:确保数组索引在有效范围内,通常使用 i < array.length 作为循环条件

4. 死循环

症状:循环永远不会结束

解决方案:确保循环条件最终会变为 false,或在循环体中使用 break 语句

总结

for 循环是 Java 中最常用的循环结构之一,它适用于已知循环次数的场景。for 循环的语法简洁明了,执行流程清晰。

在使用 for 循环时,需要注意:

  • 初始化表达式、条件表达式和更新表达式的正确设置
  • 循环体的逻辑正确性
  • 避免死循环和数组索引越界等错误
  • 合理使用 for-each 循环遍历数组和集合

通过合理使用 for 循环,可以简化代码,提高程序的可读性和效率。

© 2026 编程马·菜鸟教程 版权所有