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

相关推荐
PPPPickup40 分钟前
金证秋招笔试
java·开发语言
不正经学生1 小时前
C语言结构体:自定义数据类型,让变量打包出行
java·c语言·开发语言·数据结构·算法
ycjunhua1 小时前
Spring AI 2.0 GA:ToolCallingAdvisor 重构与 Java Agent 新范式
java·人工智能·spring
开源必胜1 小时前
Future的异常处理以及CompletableFuture传播链、异常处理
java
林森lsjs2 小时前
队列 FIFO 原理 & 手撕两种队列实现(链表 + 循环数组)—数据结构陆
java·开发语言·数据结构·队列
lisin-lee-cooper3 小时前
简单聊聊 OpenFeign 框架源码
java·微服务
Buke..3 小时前
【APP 逆向】哔哩哔哩 sign 参数逆向(下):OLLVM 混淆还原 sign 算法
java·javascript·爬虫·python·算法
linux-hzh3 小时前
百日算法修炼 · Day 15
java·算法
半生过往3 小时前
前端学 Java 课程笔记
java·前端·笔记
mmsx4 小时前
基于 Android 的校园信息管理系统源码
android·java·okhttp