在 Java 编程中,循环结构用于重复执行一段代码,直到满足特定条件。Java 提供了三种主要的循环结构:
for循环、
while循环和
do...while循环。本文将详细介绍这三种循环的语法、用法和区别,并通过示例代码进行说明。
for循环是最常用的循环结构,适用于已知循环次数的场景。
for (初始化表达式; 布尔表达式; 更新表达式) {
- 初始化表达式:在循环开始前执行,通常用于定义循环变量。
- 布尔表达式:每次循环前检查,若为
true则执行循环体,否则退出。
- 更新表达式:每次循环体执行后更新循环变量。
- 执行初始化表达式。
- 检查布尔表达式,若为
true则执行循环体,否则退出。
- 执行更新表达式。
- 重复步骤 2 和 3。
用于遍历数组或集合:
int[] numbers = {1, 2, 3, 4, 5};
for (int num : numbers) {
System.out.println(num);
}
while循环适用于未知循环次数,仅根据条件判断是否继续的场景。
- 布尔表达式:每次循环前检查,若为
true则执行循环体,否则退出。
- 检查布尔表达式,若为
true则执行循环体,否则退出。
- 循环体执行后,再次检查布尔表达式,重复步骤 1。
- 确保循环条件最终会变为
false,否则会导致无限循环。
- 若初始条件不满足,循环体可能一次都不执行。
do...while循环与while类似,但至少会执行一次循环体。
- 布尔表达式:每次循环体执行后检查,若为
true则继续循环,否则退出。
- 执行循环体。
- 检查布尔表达式,若为
true则继续循环,否则退出。
- 重复步骤 1 和 2。
- 无论初始条件如何,循环体至少会执行一次。
- 循环条件后的分号
;不可省略。
| 循环类型 | 适用场景 | 执行次数 | 特点 |
for |
已知循环次数 |
0 次或多次 |
结构紧凑,循环变量作用域明确 |
while |
未知循环次数,条件前置 |
0 次或多次 |
先判断条件,再执行循环体 |
do...while |
未知循环次数,至少执行一次 |
至少 1 次 |
先执行循环体,再判断条件 |
用于立即终止整个循环:
for (int i = 1; i <= 10; i++) {
if (i == 5) {
break;
用于跳过当前循环的剩余部分,直接进入下一次循环:
for (int i = 1; i <= 10; i++) {
if (i % 2 == 0) {
continue;
用于控制嵌套循环:
outer:
for (int i = 1; i <= 3; i++) {
for (int j = 1; j <= 3; j++) {
if (i == 2 && j == 2) {
break outer;
int[] numbers = {10, 20, 30, 40};
for (int i = 0; i < numbers.length; i++) {
System.out.println(numbers[i]);
}
int sum = 0;
for (int i = 1; i <= 100; i++) {
sum += i;
}
System.out.println("Sum: " + sum);
import java.util.Scanner;
Scanner scanner = new Scanner(System.in);
int num;
do {
System.out.print("Enter a number (0 to exit): ");
num = scanner.nextInt();
System.out.println("You entered: " + num);
} while (num != 0);
- 避免无限循环:确保循环条件最终会变为
false。
- 循环变量作用域:
for循环的初始化变量仅在循环内可见。
- 性能考虑:在大规模数据处理时,
for循环通常比while更高效。
- 代码可读性:选择合适的循环结构,避免过度复杂的嵌套。
- for 循环:适用于已知循环次数的场景,结构清晰。
- while 循环:适用于条件判断的场景,灵活性高。
- do...while 循环:适用于至少需要执行一次的场景。
- 控制语句:
break和continue用于精确控制循环流程。
合理选择循环结构并结合控制语句,可以编写出高效、清晰的 Java 代码。