在计算机编程中,循环用于重复执行一段代码。例如,如果你想显示一条消息 100 次,那么你无需将相同的代码编写 100 次,而是可以使用循环。
在Java中,有三种类型的循环。
- for 循环
- while 循环
- do...while 循环
本教程重点介绍 for
循环。你将在接下来的教程中了解其他类型的循环。
Java for 循环
Java for
循环用于将一段代码运行指定的次数。for
循环的语法是
for (initialExpression; testExpression; updateExpression) {
// body of the loop
}
这里,
- initialExpression 初始化和/或声明 变量 并仅执行一次。
condition
被计算。如果condition
为true
,则执行for
循环的主体。updateExpression
更新 initialExpression 的值。- condition 再次被计算。该过程一直持续到 condition 为
false
。
要了解有关条件的更多信息,请访问 Java 关系运算符 和 逻辑运算符。

示例 1:显示文本五次
// Program to print a text 5 times
class Main {
public static void main(String[] args) {
int n = 5;
// for loop
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 | 操作 |
---|---|---|---|
第 1 次 | i = 1 n = 5 |
true |
打印 "Java is fun"。 i 增加到 2。 |
第 2 次 | i = 2 n = 5 |
true |
打印 "Java is fun"。 i 增加到 3。 |
第 3 次 | i = 3 n = 5 |
true |
打印 "Java is fun"。 i 增加到 4。 |
第 4 次 | i = 4 n = 5 |
true |
打印 "Java is fun"。 i 增加到 5。 |
第 5 个 | i = 5 n = 5 |
true |
打印 "Java is fun"。 i 增加到 6。 |
第 6 个 | i = 6 n = 5 |
false |
循环终止。 |
示例 2:显示数字 1 到 5
// Program to print numbers from 1 to 5
class Main {
public static void main(String[] args) {
int n = 5;
// for loop
for (int i = 1; i <= n; ++i) {
System.out.println(i);
}
}
}
输出
1 2 3 4 5
程序的工作原理如下。
迭代 | 变量 | 条件:i | 操作 |
---|---|---|---|
第 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 个自然数的和
// Program to find the sum of natural numbers from 1 to 1000.
class Main {
public static void main(String[] args) {
int sum = 0;
int n = 1000;
// for loop
for (int i = 1; i <= n; ++i) {
// body inside for loop
sum += i; // sum = sum + i
}
System.out.println("Sum = " + sum);
}
}
输出:
Sum = 500500
在此,sum 的初始值为 0。然后,for 循环从 i = 1 到 1000
迭代。在每次迭代中,i 被加到 sum 中,其值增加 1。
当 i 变为 1001 时,测试条件为 false
,此时 sum 将等于 0 + 1 + 2 + .... + 1000
。
上面计算自然数和的程序也可以这样写:
// Program to find the sum of natural numbers from 1 to 1000.
class Main {
public static void main(String[] args) {
int sum = 0;
int n = 1000;
// for loop
for (int i = n; i >= 1; --i) {
// body inside for loop
sum += i; // sum = sum + i
}
System.out.println("Sum = " + sum);
}
}
此程序的输出与 示例 3 相同。
Java for-each 循环
Java for 循环有一个替代语法,可以轻松地迭代 数组 和 集合。例如:
// print array elements
class Main {
public static void main(String[] args) {
// create an array
int[] numbers = {3, 7, 5, -5};
// iterating through the array
for (int number: numbers) {
System.out.println(number);
}
}
}
输出
3 7 5 -5
这里,我们使用了 for-each 循环 来逐一打印 numbers 数组中的每个元素。
在循环的第一次迭代中,number 是 3,第二次迭代中 number 是 7,依此类推。
要了解更多,请访问 Java for-each 循环。
Java 无限 for 循环
如果我们设置的测试表达式使其永远不会评估为 false
,那么 for
循环将永远运行。这称为无限 for 循环。例如:
// Infinite for Loop
class Infinite {
public static void main(String[] args) {
int sum = 0;
for (int i = 1; i <= 10; --i) {
System.out.println("Hello");
}
}
}
这里,测试表达式 i <= 10
永远不会为 false
,并且 Hello
会被重复打印,直到内存耗尽。
另请阅读