当处理重复性任务时,Java 提供了四种常用的循环结构,它们分别是 while 循环、do-while 循环、for 循环和 for-each 循环。下面将详细介绍这四种循环的特点和用法。
循环
while 循环
while
循环是最基本的循环结构之一,它用于在满足指定条件时重复执行代码块。在每次循环开始前,先检查条件是否为真(true),若条件为真则执行循环体,然后再次检查条件,如此循环进行,直到条件变为假(false)为止。
语法
while (条件) {
// 循环体
}
代码示例
public class WhileLoopExample {
public static void main(String[] args) {
int i = 1;
while (i <= 5) {
System.out.println(i);
i++;
}
}
}
代码运行结果:
1
2
3
4
5
do-while 循环
do while
循环是另一种基本的循环结构,与while
循环不同的是,do while
先执行循环体,然后再检查条件是否为真。因此,do while
循环至少会执行一次循环体,即使初始条件不满足也是如此。
语法
do {
// 循环体
} while (条件);
代码示例
public class DoWhileLoopExample {
public static void main(String[] args) {
int j = 1;
do {
System.out.println(j);
j++;
} while (j <= 5);
}
}
代码运行结果:
1
2
3
4
5
for 循环
for
循环是用于重复执行一个已知次数的循环体,或者在满足条件时重复执行。它的控制结构允许你初始化、测试条件和迭代的三个表达式都放在一行内。
语法
for (初始化; 条件; 增量) {
// 循环体
}
代码示例
public class ForLoopExample {
public static void main(String[] args) {
for (int i = 1; i <= 5; i++) {
System.out.println(i);
}
}
}
代码运行结果:
1
2
3
4
5
for-each 循环
for-each
循环,也称为增强型 for 循环,是专门用于遍历数组或集合的循环结构。它在不需要访问索引的情况下就可以访问数组或集合中的每个元素。
语法
for (数据类型 元素 : 数组/集合) {
// 循环体
}
代码示例
public class ForEachLoopExample {
public static void main(String[] args) {
// int [] 这是一种数组结构,用来存储多个连续的数据,后续会讲到
int[] numbers = {1, 2, 3, 4, 5};
for (int number : numbers) {
System.out.println(number);
}
}
}
代码运行结果:
1
2
3
4
5
循环流程控制语句
在循环中,控制语句 break
和 continue
用于更加精准地控制循环的执行流程。
break
break
语句用于强制退出循环。
代码示例:
public class LoopBreakExample {
public static void main(String[] args) {
// 使用break在for循环中跳出循环
for (int i = 1; i <= 10; i++) {
if (i == 5) {
break; // 当 i 等于 5 时跳出循环
}
System.out.println(i);
}
}
}
代码运行结果:
1
2
3
4
continue
continue
语句用于跳过当前循环的剩余代码,直接进入下一次循环的条件判断。
代码示例:
public class LoopContinueExample {
public static void main(String[] args) {
// 使用continue在for循环中跳过偶数
for (int i = 1; i <= 10; i++) {
if (i % 2 == 0) {
continue; // 当 i 为偶数时跳过当前循环的剩余代码,直接进行下一次循环迭代
}
System.out.println(i);
}
}
}
代码运行结果:
1
3
5
7
9