精通 Java for 循环:语法、示例与最佳实践
精通 Java for 循环
本教程通过清晰示例、详细分步解释和最佳实践指南,讲解如何在 Java 中使用 for 循环。
循环让你重复执行代码块。不用写几十遍相同语句,循环自动化重复,节省精力并减少错误。
Java 提供三种主要循环结构:
- for 循环
- while 循环
- do…while 循环
本文聚焦 for 循环。其他两种循环教程见本站别处。
Java for 循环
for 循环适用于迭代次数预先已知的场景。其语法沿用经典 C 风格:
for (initialExpression; testExpression; updateExpression) {
// 循环体
}
各组件说明:
- initialExpression – 初始化变量,仅执行一次。
- testExpression – 每次迭代前评估;为
true则执行循环体。 - updateExpression – 每次迭代后执行,通常修改循环计数器。
- 循环重复直到 testExpression 评估为
false。
关于 testExpression 中使用的逻辑运算符,详见 Java 关系和逻辑运算符 指南。
示例 1: 打印消息五次
class Main {
public static void main(String[] args) {
int n = 5;
for (int i = 1; i <= n; ++i) {
System.out.println("Java is fun");
}
}
}
输出
Java is fun Java is fun Java is fun Java is fun Java is fun
迭代分解:
| 迭代 | 变量 | 条件 (i <= n) | 动作 |
|---|---|---|---|
| 1st | i = 1 n = 5 | true | Java is fun 打印;i 变为 2。 |
| 2nd | i = 2 n = 5 | true | Java is fun 打印;i 变为 3。 |
| 3rd | i = 3 n = 5 | true | Java is fun 打印;i 变为 4。 |
| 4th | i = 4 n = 5 | true | Java is fun 打印;i 变为 5。 |
| 5th | i = 5 n = 5 | true | Java is fun 打印;i 变为 6。 |
| 6th | i = 6 n = 5 | false | 循环终止。 |
示例 2: 打印数字 1 到 5
class Main {
public static void main(String[] args) {
int n = 5;
for (int i = 1; i <= n; ++i) {
System.out.println(i);
}
}
}
输出
1 2 3 4 5
迭代表同上,仅将消息替换为当前计数器值。
示例 3: 1 到 1000 自然数求和
class Main {
public static void main(String[] args) {
int sum = 0;
int n = 1000;
for (int i = 1; i <= n; ++i) {
sum += i; // sum = sum + i
}
System.out.println("Sum = " + sum);
}
}
输出
Sum = 500500
循环将 1 到 1000 的每个整数累加到 sum。降序形式同理:
class Main {
public static void main(String[] args) {
int sum = 0;
int n = 1000;
for (int i = n; i >= 1; --i) {
sum += i;
}
System.out.println("Sum = " + sum);
}
}
Java for-each 循环
遍历数组或集合时,for-each 语法简洁且不易出错:
class Main {
public static void main(String[] args) {
int[] numbers = {3, 7, 5, -5};
for (int number : numbers) {
System.out.println(number);
}
}
}
输出
3 7 5 -5
每次迭代将下一个数组元素赋给 number,无需索引管理。
详见 Java for-each 循环。
Java 无限 for 循环
测试表达式永不为 false 时发生无限循环。虽通常避免,但可演示循环控制:
class Infinite {
public static void main(String[] args) {
for (int i = 1; i <= 10; --i) {
System.out.println("Hello");
}
}
}
因 i 从 1 开始且递减,条件检查 <=10 永为 true,无限打印 "Hello" 直到 JVM 内存耗尽。
java