Java for 循环
提示
- for 循环基础:Java 的
for
循环用于重复执行代码特定次数,包括初始表达式、测试表达式和更新表达式。 - for 循环例子:示例展示了如何使用
for
循环打印文本、显示一系列数字以及计算数字总和。 - for-each 循环和无限循环:Java 也支持 for-each 循环简化数组和集合的遍历,以及创建无限循环,其中测试条件永不为
false
。
在计算机编程中,循环用于重复执行一块代码。例如,如果你想展示一条消息 100 次,那么不需要输入相同的代码 100 次,你可以使用循环。
在 Java 中,有三种类型的循环。
- for 循环
- while 循环
- do...while 循环
本教程重点讲解 for 循环。关于其他类型的循环,将在后续教程中学习。
Java for 循环
Java 的 for
循环用于运行一段代码特定次数。for
循环的语法是:
for (初始表达式; 测试表达式; 更新表达式) {
// 循环的主体
}
其中,
- 初始表达式 初始化和/或声明变量,并且只执行一次。
- 条件 被评估。如果 条件 为
true
,则执行for
循环的主体。 - 更新表达式 更新 初始表达式 的值。
- 再次评估 条件。这个过程持续到 条件 为
false
时。
要了解更多关于条件的信息,请访问 Java 关系 和 逻辑运算符。
示例 1:五次显示文本
// 程序打印文本 5 次
class Main {
public static void main(String[] args) {
int n = 5;
// for 循环
for (int i = 1; i <= n; ++i) {
System.out.println("Java 很有趣");
}
}
}
输出
Java 很有趣
Java 很有趣
Java 很有趣
Java 很有趣
Java 很有趣
以下是这个程序的工作原理。
迭代 | 变量 | 条件:i <= n | 动作 |
---|---|---|---|
第 1 次 | i = 1``n = 5 | true | 打印 Java 很有趣。i 增加到 2 。 |
第 2 次 | i = 2``n = 5 | true | 打印 Java 很有趣。i 增加到 3 。 |
第 3 次 | i = 3``n = 5 | true | 打印 Java 很有趣。i 增加到 4 。 |
第 4 次 | i = 4``n = 5 | true | 打印 Java 很有趣。i 增加到 5 。 |
第 5 次 | i = 5``n = 5 | true | 打印 Java 很有趣。i 增加到 6 。 |
第 6 次 | i = 6``n = 5 | false | 循环终止。 |
示例 2:显示从 1 到 5 的数字
// 程序打印从 1 到 5 的数字
class Main {
public static void main(String[] args) {
int n = 5;
// for 循环
for (int i = 1; i <= n; ++i) {
System.out.println(i);
}
}
}
输出
1
2
3
4
5
以下是程序的工作原理。
迭代 | 变量 | 条件:i <= n | 动作 |
---|---|---|---|
第 1 次 | i = 1``n = 5 | true | 打印 1。i 增加到 2 。 |
第 2 次 | i = 2``n = 5 | true | 打印 2。i 增加到 3 。 |
第 3 次 | i = 3``n = 5 | true | 打印 3。i 增加到 4 。 |
第 4 次 | i = 4``n = 5 | true | 打印 4。i 增加到 5 。 |
第 5 次 | i = 5``n = 5 | true | 打印 5。i 增加到 6 。 |
第 6 次 | i = 6``n = 5 | false | 循环终止。 |
示例 3:显示 n 个自然数的总和
// 程序计算从 1 到 1000 的自然数之和。
class Main {
public static void main(String[] args) {
int sum = 0;
int n = 1000;
// for 循环
for (int i = 1; i <= n; ++i) {
// 循环体内
sum += i; // sum = sum + i
}
System.out.println("总和 = " + sum);
}
}
输出:
总和 = 500500
这里,sum
的初始值是 0。然后,for 循环从 i = 1 到 1000
迭代。在每次迭代中,i
被加到 sum
上,其值增加 1。
当 i
变为 1001 时,测试条件为 false
,sum
将等于 0 + 1 + 2 + .... + 1000
。
上述计算自然数之和的程序也可以写成
// 程序计算从 1 到 1000 的自然数之和。
class Main {
public static void main(String[] args) {
int sum = 0;
int n = 1000;
// for 循环
for (int i = n; i >= 1; --i) {
// 循环体内
sum += i; // sum = sum + i
}
System.out.println("总和 = " + sum);
}
}
这个程序的输出与 示例 3 相同。
Java for-each 循环
Java 的 for 循环有一种替代语法,使得遍历 数组 和集合变得容易。例如,
// 打印数组元素
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
在这里,我们使用了 for-each 循环 逐个打印 numbers
数组的每个元素。
在循环的第一次迭代中,number
将是 3,第二次迭代中将是 7,以此类推。
要了解更多,请访问 Java for-each 循环。
Java 无限 for 循环
如果我们以这样一种方式设置 测试表达式,使其永远不会评估
为 false
,那么 for
循环将永远运行。这称为无限 for 循环。例如,
// 无限 for 循环
class Infinite {
public static void main(String[] args) {
int sum = 0;
for (int i = 1; i <= 10; --i) {
System.out.println("你好");
}
}
}
这里,测试表达式 i <= 10
从未为 false
,并且 你好
将 重复打印,直到内存耗尽。