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,用于退出外部循环的本次执行,继续进入外部循环的下一次执行。

相关推荐
橙淮7 小时前
并发编程(六)
java·jvm
拽着尾巴的鱼儿7 小时前
springboot openfeign 自定义feign 接口重试机制
java·spring boot·后端
白露与泡影7 小时前
2026大厂Java面试题大全!牛客网最新版
java·开发语言
EntyIU8 小时前
JVM内存与GC笔记
java·jvm·笔记
XS0301068 小时前
并发编程 六
java·后端
yaoxin5211238 小时前
419. 现代 Java IO 最佳实践 - 写入文本文件
java·windows·python
雪宫街道8 小时前
synchronized 锁的范围:对象锁、类锁与代码块锁
java·jvm·后端·面试
x***r1518 小时前
linux安装 jdk-8u291-linux-x64.tar.gz 详细步骤(解压配置环境变量)
java
极光代码工作室9 小时前
基于SpringBoot的校园论坛系统
java·springboot·web开发·后端开发
XS0301069 小时前
Spring Bean 作用域 & 生命周期
java·后端·spring