Java 学习25:break 和 continue 语句

在 Java 中,break 和 continue 是两种常用的控制流语句,用于控制循环或 switch 语句的执行流程。它们的功能和使用场景各有不同,以下是详细说明。

一、break 语句

break 用于退出循环或 switch 语句。

例:在数组中找到目标值 333 时退出搜索。

java 复制代码
public static void main(String[] args) {
    int[] intary = { 99,12,22,34,45,67,333,8990 };
    int num = 333;
    int i = 0;
    boolean found = false;
    for ( ; i < intary.length; i++) { //变量i需要在for的外部声明,因为外部语句也用它
        if (num == intary[i] ) {
            found = true;
            break; //找到目标值时退出搜索
        }
    }
    if (found) {
        System.out.println(num + " 元素的索引位置在: " + i);
    }
    else {
        System.out.println(num + " 元素不在数组中");
    }
}

运行结果:

333 元素的索引位置在: 6

二、continue 语句

continue 用于退出本次循环,继续进入下一次循环。

例:输出 10 以内的奇数,跳过偶数。

java 复制代码
public static void main(String[] args) {
    for (int i = 0; i < 10; i++) {
        if (i % 2 == 0) {
            continue; // 如果是偶数,结束本次循环
        }
        System.out.print(i + "\t");
    }
}

三、break 和 continue 的区别

1. 功能区别: break 直接退出循环。 continue 退出本次循环,继续进入下一次循环。

2. 使用场景区别: break 常用于提前终止循环,例如在找到目标值时退出搜索。 continue 常用于跳过不需要处理的元素,例如过滤无效数据。

四、嵌套循环中的 break 语句

当两个循环嵌套时,如果 break 语句位于内层循环,它只会退出内层循环,但不会退出外层循环。

例:

java 复制代码
public static void main(String[] args) {
    for (int i = 0; i < 3; i++) {
        for (int j = 0; j < 3; j++) {
            if (i == 1 && j == 1) {
                break; // 跳出内层循环
            }
            System.out.println("i: " + i + ", j: " + j);
        }
    }
}

运行结果:

i: 0, j: 0

i: 0, j: 1

i: 0, j: 2

i: 1, j: 0

i: 2, j: 0

i: 2, j: 1

i: 2, j: 2

五、带标签的 break 语句

带标签的 break 语句,是 Java 对 break 语句的一种扩展形式,用来处理退出多层嵌套循环这个问题。

标签(Label)是一种用于标识代码块的标识符。标签可以是任何合法有效的 Java 标识符,后面跟一个冒号。

标签的语法形式:

labelName:

带标签的 break 语句可以从多层嵌套循环中直接退出。使用时,标签要写在多层嵌套循环代码块的上面,而 break 语句后面要带着标签名。

例:用带标签的 break 语句退出外层循环。

java 复制代码
public static void main(String[] args) {
    outerLoop: // 标签
    for (int i = 0; i < 3; i++) {
        for (int j = 0; j < 3; j++) {
            if (i == 1 && j == 1) {
                break outerLoop; // 带标签的break
            }
            System.out.println("i: " + i + ", j: " + j);
        }
    }
}

运行结果:

i: 0, j: 0

i: 0, j: 1

i: 0, j: 2

i: 1, j: 0

**注意:**使用带标签的 break 语句退出多层嵌套循环时,被加标签的代码块必须包围 break 语句。也就是说,带标签的 break 语句只能用于退出它所在的多层嵌套循环,而不能用于跳转到不包含它的代码块。也就是说,带标签的 break 语句并不是 goto 语句。

同时,除了有带标签的 break 外,java 中还有带标签的 continue,用于退出外部循环的本次执行,继续进入外部循环的下一次执行。

相关推荐
身如柳絮随风扬19 小时前
Java中的CAS机制详解
java·开发语言
风筝在晴天搁浅20 小时前
hot100 78.子集
java·算法
故事和你9121 小时前
sdut-Java面向对象-06 继承和多态、抽象类和接口(函数题:10-18题)
java·开发语言·算法·面向对象·基础语法·继承和多态·抽象类和接口
Configure-Handler21 小时前
buildroot System configuration
java·服务器·数据库
:Concerto1 天前
JavaSE 注解
java·开发语言·sprint
电商API_180079052471 天前
第三方淘宝商品详情 API 全维度调用指南:从技术对接到生产落地
java·大数据·前端·数据库·人工智能·网络爬虫
一点程序1 天前
基于SpringBoot的选课调查系统
java·spring boot·后端·选课调查系统
C雨后彩虹1 天前
计算疫情扩散时间
java·数据结构·算法·华为·面试
2601_949809591 天前
flutter_for_openharmony家庭相册app实战+我的Tab实现
java·javascript·flutter
vx_BS813301 天前
【直接可用源码免费送】计算机毕业设计精选项目03574基于Python的网上商城管理系统设计与实现:Java/PHP/Python/C#小程序、单片机、成品+文档源码支持定制
java·python·课程设计