跳转到内容

Java循环控制

来自代码酷


Java循环控制是编程中用于重复执行代码块的核心结构,通过条件判断或计数器控制执行次数。本教程将详细介绍Java中的循环语句、控制关键字及实际应用场景。

循环类型[编辑 | 编辑源代码]

Java提供三种主要循环结构:

1. while循环[编辑 | 编辑源代码]

语法:

while (条件表达式) {
    // 循环体
}

执行流程:

graph TD A[开始] --> B{条件为真?} B -->|是| C[执行循环体] C --> B B -->|否| D[结束]

示例:打印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;
    }
}

常见问题[编辑 | 编辑源代码]

模板:Q&A

最佳实践[编辑 | 编辑源代码]

  • 使用有意义的循环变量名(避免单一字母)
  • 保持循环体简洁(超过20行应考虑重构)
  • 避免深层嵌套(一般不超过3层)
  • 循环条件中避免调用耗时方法

通过掌握这些循环控制技术,您可以高效处理重复性任务,构建更复杂的程序逻辑。