Java循环控制
外观
Java循环控制是编程中用于重复执行代码块的核心结构,通过条件判断或计数器控制执行次数。本教程将详细介绍Java中的循环语句、控制关键字及实际应用场景。
循环类型[编辑 | 编辑源代码]
Java提供三种主要循环结构:
1. while循环[编辑 | 编辑源代码]
语法:
while (条件表达式) {
// 循环体
}
执行流程:
示例:打印1-5的数字
int i = 1;
while (i <= 5) {
System.out.println(i);
i++;
}
输出:
1 2 3 4 5
2. do-while循环[编辑 | 编辑源代码]
语法:
do {
// 循环体
} while (条件表达式);
特点:至少执行一次循环体
示例:用户输入验证
import java.util.Scanner;
Scanner scanner = new Scanner(System.in);
int input;
do {
System.out.print("请输入1-100之间的数字: ");
input = scanner.nextInt();
} while (input < 1 || input > 100);
3. for循环[编辑 | 编辑源代码]
语法:
for (初始化; 条件表达式; 迭代语句) {
// 循环体
}
执行次数公式: 解析失败 (未知函数“\begin{cases}”): {\displaystyle n = \begin{cases} \lfloor \frac{终值-初值}{步长} \rfloor + 1 & \text{当条件满足时} \\ 0 & \text{否则} \end{cases} }
示例:计算1-10的平方
for (int i = 1; i <= 10; i++) {
System.out.println(i + "的平方是: " + (i*i));
}
循环控制语句[编辑 | 编辑源代码]
关键字 | 作用 | 适用循环类型 |
---|---|---|
break |
立即终止当前循环 | 所有循环 |
continue |
跳过当前迭代,进入下一次循环 | 所有循环 |
return |
退出整个方法 | 方法内任何位置 |
break示例[编辑 | 编辑源代码]
for (int i = 0; i < 10; i++) {
if (i == 5) {
break; // 当i=5时退出循环
}
System.out.println(i);
}
输出:
0 1 2 3 4
continue示例[编辑 | 编辑源代码]
for (int i = 0; i < 5; i++) {
if (i == 2) {
continue; // 跳过i=2的情况
}
System.out.println(i);
}
输出:
0 1 3 4
嵌套循环[编辑 | 编辑源代码]
循环内部可以包含其他循环,常用于处理多维数据结构。
示例:打印乘法表
for (int i = 1; i <= 9; i++) { // 外层循环控制行
for (int j = 1; j <= i; j++) { // 内层循环控制列
System.out.print(j + "×" + i + "=" + (i*j) + "\t");
}
System.out.println(); // 换行
}
增强for循环[编辑 | 编辑源代码]
Java 5+引入的简化语法,用于遍历数组或集合:
int[] numbers = {10, 20, 30, 40};
for (int num : numbers) {
System.out.println(num);
}
性能考虑[编辑 | 编辑源代码]
- 避免在循环内创建不必要的对象
- 对于已知次数的循环,优先使用
for
而非while
- 嵌套循环中,将循环次数少的放在外层
实际应用案例[编辑 | 编辑源代码]
案例1:数据过滤[编辑 | 编辑源代码]
List<String> products = Arrays.asList("手机", "电脑", "平板", "耳机");
List<String> filtered = new ArrayList<>();
for (String product : products) {
if (product.length() == 2) { // 筛选两字产品
filtered.add(product);
}
}
System.out.println(filtered); // 输出: [手机, 电脑, 平板]
案例2:游戏循环[编辑 | 编辑源代码]
boolean gameRunning = true;
while (gameRunning) {
// 1. 处理输入
// 2. 更新游戏状态
// 3. 渲染画面
if (playerHealth <= 0) {
gameRunning = false;
}
}
常见问题[编辑 | 编辑源代码]
最佳实践[编辑 | 编辑源代码]
- 使用有意义的循环变量名(避免单一字母)
- 保持循环体简洁(超过20行应考虑重构)
- 避免深层嵌套(一般不超过3层)
- 循环条件中避免调用耗时方法
通过掌握这些循环控制技术,您可以高效处理重复性任务,构建更复杂的程序逻辑。