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 小时前
Netty 4.2 入门指南:从概念到第一个程序
java·后端·netty
雨中飘荡的记忆9 小时前
大流量下库存扣减的数据库瓶颈:Redis分片缓存解决方案
java·redis·后端
心之语歌11 小时前
基于注解+拦截器的API动态路由实现方案
java·后端
华仔啊12 小时前
Stream 代码越写越难看?JDFrame 让 Java 逻辑回归优雅
java·后端
ray_liang12 小时前
用六边形架构与整洁架构对比是伪命题?
java·架构
Ray Liang14 小时前
用六边形架构与整洁架构对比是伪命题?
java·python·c#·架构设计
Java水解14 小时前
Java 中间件:Dubbo 服务降级(Mock 机制)
java·后端
SimonKing18 小时前
OpenCode AI辅助编程,不一样的编程思路,不写一行代码
java·后端·程序员
FastBean18 小时前
Jackson View Extension Spring Boot Starter
java·后端
Seven9719 小时前
剑指offer-79、最⻓不含重复字符的⼦字符串
java