Java for 循环

2025年4月17日 | 阅读 8 分钟

Java 中的For 循环是一种基本的控制结构,用于将一段代码重复执行指定的次数或遍历一系列值。它们对于需要重复的任务非常有用,例如处理数组中的项、生成重复的输出或以预定的次数执行一段代码。

Java for 循环用于多次迭代程序的某个部分。如果迭代次数是固定的,则建议使用 for 循环。

Java 中有以下三种 for 循环。

  • 简单 for 循环
  • For-each 或增强 for 循环
  • 带标签的 for 循环

Java 简单 for 循环

简单 for 循环与 C/C++ 相同。我们可以初始化变量、检查条件以及递增/递减值。它包含四个部分

  1. 初始化:这是循环开始时执行一次的初始条件。在这里,我们可以初始化变量,或者可以使用已初始化的变量。这是一个可选条件。
  2. 条件:这是每次执行以测试循环条件的第二个条件。它会一直执行直到条件为 false。它必须返回布尔值,true 或 false。这是一个可选条件。
  3. 递增/递减:它会递增或递减变量的值。这是一个可选条件。
  4. 语句:在第二个条件为 false 之前,每次都会执行循环的语句。

语法

流程图

for loop in java flowchart

Java For 循环示例

示例

编译并运行

输出

1
2
3
4
5
6
7
8
9
10

使用 For 循环计算阶乘的程序

示例

编译并运行

输出

Factorial of 5 is: 120

Java 嵌套 for 循环

如果一个 for 循环嵌套在另一个循环内部,则称为嵌套 for 循环。每次外层循环执行时,内层循环都会完全执行。

该结构允许我们通过对外层 for 循环的每次迭代运行一个 for 循环来执行复杂的迭代。嵌套 for 循环在处理多维数据结构(如数组)时,或在我们尝试执行需要多层循环的操作(例如生成矩阵或表格)时特别有用。

语法

示例

示例

编译并运行

输出

1 1
1 2
1 3
2 1
2 2
2 3
3 1
3 2
3 3

使用 For 循环的 Java 制作金字塔程序

金字塔示例 1

示例

编译并运行

输出

* 
* * 
* * * 
* * * * 
* * * * * 

金字塔示例 2

示例

编译并运行

输出

* * * * * * 
* * * * * 
* * * * 
* * * 
* * 
*  

Java for-each 循环

for-each 循环用于遍历 Java 中的数组或集合。它比简单的 for 循环更容易使用,因为我们不需要递增值和使用下标表示法。

它基于元素而不是索引工作。它将定义的变量中的元素逐个返回。

语法

示例

示例

编译并运行

输出

12
23
44
56
78

Java 带标签的 for 循环

Java 中的带标签的 for 循环是一个已分配标签的 for 循环。Java 中的标签提供了一种标识代码块的方法,使得有可能从嵌套循环内部跳出或继续外层循环。当我们处理嵌套循环并且需要从内层循环控制外层循环的流程时,此功能特别有用。标签增强了复杂循环结构中的控制流,允许更精确和灵活的循环管理。

我们可以为每个 Java for 循环命名。为此,我们在 for 循环前使用标签。这在使用嵌套 for 循环时很有用,因为我们可以 break/continue 指定的 for 循环。

注意:break 和 continue 关键字分别中断或继续最内层的 for 循环。

语法

示例

示例

编译并运行

输出

1 1
1 2
1 3
2 1

如果使用break bb;,它将仅中断内层循环,这是任何循环的默认行为。

示例

编译并运行

输出

1 1
1 2
1 3
2 1
3 1
3 2
3 3

Java 无穷 for 循环

Java 中的无穷 for 循环是一种没有终止条件,或者条件始终为 true 的循环,导致循环无限期运行,直到程序被手动终止或被 break 语句或异常中断。当您想创建一个持续运行直到外部条件或用户交互指示停止的循环时,会使用这种类型的循环。

如果我们使用一对分号 (;;) 在 for 循环中,它将是无穷 for 循环。

语法

示例

ForExample.java

输出

infinitive loop
infinitive loop
infinitive loop
infinitive loop
infinitive loop

现在,我们需要按 Ctrl+C 退出程序。

Java for 循环 vs while 循环 vs do-while 循环

比较for 循环while 循环do-while 循环
引言Java for 循环是一种控制流语句,它多次迭代程序的某个部分。Java while 循环是一种控制流语句,它根据给定的布尔条件反复执行程序的某个部分。Java do while 循环是一种控制流语句,它至少执行程序的某个部分一次,后续执行取决于给定的布尔条件。
何时使用如果迭代次数固定,建议使用 for 循环。如果迭代次数不固定,建议使用 while 循环。如果迭代次数不固定,并且您必须至少执行一次循环,建议使用 do-while 循环。
语法for(init;condition;incr/decr){
// 要执行的代码
}
while(condition){
//要执行的代码
}
do{
//要执行的代码
}while(condition);
示例//for 循环
for(int i=1;i<=10;i++){
System.out.println(i);
}
//while 循环
int i=1;
while(i<=10){
System.out.println(i);
i++;
}
//do-while 循环
int i=1;
do{
System.out.println(i);
i++;
}while(i<=10);
无穷循环的语法for(;;){
//要执行的代码
}
while(true){
//要执行的代码
}
do{
//要执行的代码
}while(true);

Java for 循环选择题

1) 关于 Java 中的增强 for 循环,以下哪个说法是正确的?

  1. 它只能与数组一起使用。
  2. 它提供了对当前元素的索引的访问。
  3. 它会自动处理内部异常。
  4. 它保证了集合的遍历顺序。
 

答案:a)

解释:Java 中的增强 for 循环只能遍历数组或实现了 Iterable 接口的对象。


2) 以下 for 循环做什么?

  1. 打印 0 到 8 的偶数。
  2. 打印 0 到 10 的偶数。
  3. 以 2 为步长打印 0 到 10 的数字。
  4. 以 2 为步长打印 0 到 8 的数字。
 

答案:d)

解释:循环将 i 初始化为 0,并在每次迭代中将 i 增加 2,直到 i 小于 10。因此,它打印数字 0、2、4、6 和 8。


3) 以下代码片段的输出是什么?

  1. 1 2 3 4 5
  2. 1, 2, 3, 4, 5
  3. 0 1 2 3 4
  4. 编译错误
 

答案:a)

解释:这个增强的 for 循环遍历数组 arr 的每个元素并打印其值,结果是“1 2 3 4 5”。


4) 以下关于 Java 中的无穷 for 循环的陈述哪个是正确的?

  1. 它只执行一次。
  2. 它会重复执行代码块,直到满足特定条件。
  3. 它总是抛出运行时异常。
  4. 它只能使用 break 语句终止。
 

答案:b)

解释:无穷 for 循环会一直执行其代码块,直到被显式终止,通常使用 break 语句或其他条件。


5) continue 语句在 for 循环中的作用是什么?

  1. 完全退出循环。
  2. 跳过循环中剩余的代码,继续下一次迭代。
  3. 从头重新开始循环。
  4. 递减循环计数器。
 

答案:b)

解释:当在循环中遇到 continue 语句时,将跳过当前迭代循环体中剩余的代码,然后循环继续进行下一次迭代。