云计算百科
云计算领域专业知识百科平台

循环控制:for / while / do-while

循环控制:for / while / do-while

计算机最擅长的就是重复劳动。本节学习三种循环语句:for、while、do-while,以及 break 和 continue 两个控制关键字。

一、for 循环

语法结构:

for (初始化; 条件判断; 步进) {
// 循环体
}

for (int i = 1; i <= 5; i++) {
System.out.println("第 " + i + " 次循环");
}

执行流程:

  • 初始化:int i = 1,只执行一次
  • 条件判断:i <= 5,为 true 继续,为 false 退出
  • 执行循环体:打印
  • 步进:i++
  • 回到第 2 步
  • for 循环适合循环次数确定的场景,比如遍历数组、计数。

    常用变体

    // 倒序
    for (int i = 10; i >= 1; i) {
    System.out.println(i);
    }

    // 步进为 2(打印偶数)
    for (int i = 2; i <= 10; i += 2) {
    System.out.println(i);
    }

    // 循环变量在循环外定义
    int i;
    for (i = 0; i < 10; i++) {
    // …
    }

    二、while 循环

    while (条件) {
    // 循环体
    }

    先判断,后执行。条件为 false 时一次都不执行。

    int i = 1;
    while (i <= 5) {
    System.out.println(i);
    i++; // 别忘了改变循环条件,否则死循环
    }

    while 适合循环次数不确定的场景,比如一直读取输入直到输入结束、随机猜数。

    三、do-while 循环

    do {
    // 循环体
    } while (条件);

    先执行一次,再判断。无论条件真假,循环体至少执行一次。

    int i = 10;
    do {
    System.out.println("至少执行一次:" + i);
    i++;
    } while (i < 5);
    // 输出一次:至少执行一次:10

    典型应用:菜单系统——先显示菜单,用户选择后再判断是否继续。

    四、三种循环对比

    特性forwhiledo-while
    判断时机 先判断 先判断 后判断
    最少执行次数 0 次 0 次 1 次
    适用场景 次数确定 次数不确定 至少执行一次

    三者可以互相转换,选最贴合场景的即可。

    五、break 与 continue

    break:立即终止整个循环

    for (int i = 1; i <= 10; i++) {
    if (i == 5) {
    break; // 循环到此为止
    }
    System.out.print(i + " "); // 输出:1 2 3 4
    }

    continue:跳过本次循环,继续下一次

    for (int i = 1; i <= 10; i++) {
    if (i % 2 == 0) {
    continue; // 偶数跳过,不打印
    }
    System.out.print(i + " "); // 输出:1 3 5 7 9
    }

    嵌套循环中的标签 break(了解)

    outer:
    for (int i = 0; i < 3; i++) {
    for (int j = 0; j < 3; j++) {
    if (j == 1) {
    break outer; // 直接跳出外层循环
    }
    System.out.println(i + "," + j);
    }
    }
    // 只输出 0,0

    实际开发中标签 break 很少用,能用方法封装就尽量不用。

    六、循环经典练习

    1. 计算 1 到 100 的和

    int sum = 0;
    for (int i = 1; i <= 100; i++) {
    sum += i;
    }
    System.out.println("1+2+…+100 = " + sum); // 5050

    2. 打印九九乘法表

    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(); // 换行
    }

    3. 判断质数

    int num = 97;
    boolean isPrime = true;
    for (int i = 2; i <= Math.sqrt(num); i++) {
    if (num % i == 0) {
    isPrime = false;
    break; // 已确定不是质数,提前结束
    }
    }
    System.out.println(num + (isPrime ? " 是质数" : " 不是质数"));

    七、死循环与规避

    // 经典死循环
    while (true) {
    // 配合 break 使用
    }

    死循环常用于事件监听、服务器等待请求等场景,必须保证内部有跳出条件。普通循环写死循环(如忘记 i++)是常见 bug。

    八、小结

    • for 适合次数确定,while 适合次数不确定,do-while 至少执行一次
    • break 结束整个循环,continue 跳过本次
    • 循环变量要在循环体内被更新,避免死循环
    • 嵌套循环注意内外层变量的命名区分

    下一节学习数组。

    赞(0)
    未经允许不得转载:网硕互联帮助中心 » 循环控制:for / while / do-while
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!