Java - for 循环
在 Java 中,for 循环 是一种重复控制结构,用于执行一段代码块特定次数。当迭代次数已知时,它特别有用,是自动化重复任务的高效方式。
for 循环在 Java 中用于诸如遍历数组、执行计算和处理重复操作等任务。
Java for 循环
Java for 循环 是一种入口控制循环,意思是在执行循环体之前检查给定条件。其结构化的语法使其比其他循环结构(如 while 循环)更易读和简洁。
语法
for 循环的语法如下 −
for(initialization; Boolean_expression; update) {
// Statements
}
示例
以下示例演示了一个简单的 for 循环,它打印从 1 到 5 的数字:
public class Test {
public static void main(String[] args) {
for (int i = 1; i <= 5; i++) {
System.out.println("Number: " + i);
}
}
}
上述代码编译并执行后,将产生以下结果 −
Number: 1 Number: 2 Number: 3 Number: 4 Number: 5
for 循环的结构
Java for 循环由四个基本组成部分构成:
1. 初始化
定义并初始化循环计数器变量。此部分仅在开始时执行一次。
// 初始化示例 int i = 1; // 声明并初始化循环变量
2. 布尔表达式(条件)
在每次迭代前求值。如果条件为 true,则执行循环;如果为 false,则终止循环。
// 条件示例 i <= 5; // 当 i 小于或等于 5 时循环继续
3. 循环体
包含在布尔条件为 true 时重复执行的语句。此部分还可能包括对循环计数器的更新。
// 循环体
System.out.println("Iteration: " + i); // 在每次迭代中执行
4. 更新
在每次迭代结束时修改循环计数器。
// 更新示例 i++; // 每次迭代后 i 递增 1
以下是包含所有四个组成部分的完整 for 循环语法:
for(int i = 1; i <= 5; i++) {
System.out.println("Iteration: " + i);
}
for 循环的执行过程
以下是 for 循环的控制流程 −
首先执行初始化步骤,且仅执行一次。此步骤允许声明并初始化任何循环控制变量,并以分号 (;) 结束。
接下来,求值布尔表达式。如果为 true,则执行循环体;如果为 false,则不执行循环体,控制跳转到 for 循环之后的下一语句。
for 循环体执行后,控制跳转回更新语句。此语句允许更新任何循环控制变量。此语句可以留空,仅以分号结束。
再次求值布尔表达式。如果为 true,则执行循环并重复过程(循环体,然后更新步骤,然后布尔表达式)。布尔表达式为 false 后,for 循环终止。
流程图
以下图示显示了 Java 中 for 循环的流程图(执行过程)−

for 循环示例
以下是各种示例,演示了 Java 中 for 循环的使用:
示例 1:使用 for 循环打印范围内的数字
在这个示例中,我们展示了使用 for 循环打印从 10 到 19 的数字。这里我们在 for 循环的初始化块中用 10 初始化了一个 int 变量 x。然后在表达式块中,检查 x 小于 20,最后在更新块中,将 x 递增 1。在 for 循环体中,我们打印 x 的值。for 循环将运行直到 x 变为 20。一旦 x 为 20,循环将停止执行,程序退出。
public class Test {
public static void main(String args[]) {
for(int x = 10; x < 20; x = x + 1) {
System.out.print("value of x : " + x );
System.out.print("\n");
}
}
}
上述代码编译并执行后,将产生以下结果 −
value of x : 10 value of x : 11 value of x : 12 value of x : 13 value of x : 14 value of x : 15 value of x : 16 value of x : 17 value of x : 18 value of x : 19
示例 2:使用 for 循环打印数组元素
在这个示例中,我们展示了使用 for 循环打印数组内容。这里我们创建了一个整数数组 numbers 并初始化了一些值。我们创建了一个名为 index 的变量来表示数组的索引,在 for 循环中检查它与数组大小的关系,并将其递增 1。在 for 循环体中,我们使用索引表示法打印数组元素。一旦 index 等于数组大小,for 循环退出,程序结束。
public class Test {
public static void main(String args[]) {
int [] numbers = {10, 20, 30, 40, 50};
for(int index = 0; index < numbers.length; index++) {
System.out.print("value of item : " + numbers[index] );
System.out.print("\n");
}
}
}
上述代码编译并执行后,将产生以下结果 −
value of item : 10 value of item : 20 value of item : 30 value of item : 40 value of item : 50
嵌套 for 循环
嵌套 for 循环是一个 for 循环在其内部包含另一个 for 循环。
示例
在这个示例中,我们打印从 1 到 10 的数字的乘法表。
public class Main {
public static void main(String[] args) {
// 实现嵌套 for 循环
// 初始化循环计数器
int num = 1;
int i = 1;
// 外层 for 循环
for (num = 1; num <= 10; num++) {
//内层 for 循环
System.out.print("Table of " + num + " is : ");
for (i = 1; i <= 10; i++) {
// 打印乘法表
System.out.print(num * i + " ");
}
// 打印新行
System.out.println();
}
}
}
上述代码编译并执行后,将产生以下结果 −
Table of 1 is : 1 2 3 4 5 6 7 8 9 10 Table of 2 is : 2 4 6 8 10 12 14 16 18 20 Table of 3 is : 3 6 9 12 15 18 21 24 27 30 Table of 4 is : 4 8 12 16 20 24 28 32 36 40 Table of 5 is : 5 10 15 20 25 30 35 40 45 50 Table of 6 is : 6 12 18 24 30 36 42 48 54 60 Table of 7 is : 7 14 21 28 35 42 49 56 63 70 Table of 8 is : 8 16 24 32 40 48 56 64 72 80 Table of 9 is : 9 18 27 36 45 54 63 72 81 90 Table of 10 is : 10 20 30 40 50 60 70 80 90 100
无限 for 循环
无限循环除非手动按 CTRL + C 停止,否则永不结束。要实现无限 for 循环,可以使用始终为真的条件,或者直接使用 true 作为条件。
示例
在这个示例中,我们使用 for 循环展示无限循环。它会持续打印数字,直到你按 ctrl+c 终止程序。
public class Test {
public static void main(String args[]) {
int x = 10;
for( ;; ) {
System.out.print("value of x : " + x );
x++;
System.out.print("\n");
}
}
}
上述代码编译并执行后,会产生以下结果 −
value of item : 10 value of item : 11 value of item : 12 value of item : 13 value of item : 14 ... ctrl+c
Java for 循环的使用场景
Java 中的 for 循环广泛用于重复性任务。以下是一些常见使用场景及其完整示例:
1. 遍历固定范围的数字
当迭代次数已知时,for 循环可以高效执行所需步骤。
public class ForLoopExample {
public static void main(String[] args) {
for(int i = 1; i <= 10; i++) {
System.out.println("Number: " + i);
}
}
}
2. 遍历数组和集合
for 循环常用于迭代数组或列表。
public class ArrayTraversal {
public static void main(String[] args) {
int[] numbers = {10, 20, 30, 40, 50};
for(int i = 0; i < numbers.length; i++) {
System.out.println("Element: " + numbers[i]);
}
}
}
3. 实现嵌套循环
它适用于迭代多维结构,如矩阵。
public class NestedLoopExample {
public static void main(String[] args) {
for(int i = 1; i <= 3; i++) {
for(int j = 1; j <= 3; j++) {
System.out.print(i + "," + j + " ");
}
System.out.println();
}
}
}
4. 重复执行特定次数的任务
当任务需要重复执行固定次数时,for 循环是理想选择。
public class RepeatTaskExample {
public static void main(String[] args) {
for(int i = 0; i < 5; i++) {
System.out.println("Task executed: " + (i+1));
}
}
}
5. 使用增强 for 循环 (for-each)
Java 提供了增强的 for 循环,用于迭代数组和集合。
public class EnhancedForLoopExample {
public static void main(String[] args) {
String[] fruits = {"Apple", "Banana", "Cherry"};
for(String fruit : fruits) {
System.out.println(fruit);
}
}
}