跳到主要内容

Java for 循环

提示
  1. for 循环基础:Java 的 for 循环用于重复执行代码特定次数,包括初始表达式、测试表达式和更新表达式。
  2. for 循环例子:示例展示了如何使用 for 循环打印文本、显示一系列数字以及计算数字总和。
  3. for-each 循环和无限循环:Java 也支持 for-each 循环简化数组和集合的遍历,以及创建无限循环,其中测试条件永不为 false

在计算机编程中,循环用于重复执行一块代码。例如,如果你想展示一条消息 100 次,那么不需要输入相同的代码 100 次,你可以使用循环。

在 Java 中,有三种类型的循环。

本教程重点讲解 for 循环。关于其他类型的循环,将在后续教程中学习。

Java for 循环

Java 的 for 循环用于运行一段代码特定次数。for 循环的语法是:

for (初始表达式; 测试表达式; 更新表达式) {
// 循环的主体
}

其中,

  1. 初始表达式 初始化和/或声明变量,并且只执行一次。
  2. 条件 被评估。如果 条件true,则执行 for 循环的主体。
  3. 更新表达式 更新 初始表达式 的值。
  4. 再次评估 条件。这个过程持续到 条件false 时。

要了解更多关于条件的信息,请访问 Java 关系逻辑运算符

Java 中的 for 循环工作原理及流程图

示例 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 = 5true打印 Java 很有趣。i 增加到 2
第 2 次i = 2``n = 5true打印 Java 很有趣。i 增加到 3
第 3 次i = 3``n = 5true打印 Java 很有趣。i 增加到 4
第 4 次i = 4``n = 5true打印 Java 很有趣。i 增加到 5
第 5 次i = 5``n = 5true打印 Java 很有趣。i 增加到 6
第 6 次i = 6``n = 5false循环终止。

示例 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 = 5true打印 1。i 增加到 2
第 2 次i = 2``n = 5true打印 2。i 增加到 3
第 3 次i = 3``n = 5true打印 3。i 增加到 4
第 4 次i = 4``n = 5true打印 4。i 增加到 5
第 5 次i = 5``n = 5true打印 5。i 增加到 6
第 6 次i = 6``n = 5false循环终止。

示例 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 时,测试条件为 falsesum 将等于 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,并且 你好 将重复打印,直到内存耗尽。