36. Java 控制流语句 Break 语句

36. Java 控制流语句 Break 语句

在 Java 中,break 语句用于立即跳出当前的循环或 switch 语句,并让程序控制流转移到循环或 switch 语句之后的第一条语句。它有两种形式:未标记的 break带标签的 break。🎯


1. 未标记的 break

未标记的 break 语句用于跳出当前的循环(例如:forwhiledo-while)或 switch 语句。当 break 被执行时,程序会立刻跳出循环或 switch,并继续执行循环或 switch 之后的代码。✅

示例:在 for 循环中使用 break

假设我们需要在一个数组中查找数字 12,一旦找到,就停止循环,直接输出找到的位置。使用 break 可以实现这一点:

java 复制代码
class BreakDemo {
    public static void main(String[] args) {
        int[] arrayOfInts = {32, 87, 3, 589, 12, 1076, 2000, 8, 622, 127};
        int searchfor = 12;
        int i;
        boolean foundIt = false;

        for (i = 0; i < arrayOfInts.length; i++) {
            if (arrayOfInts[i] == searchfor) {
                foundIt = true;
                break;  // 终止循环
            }
        }

        if (foundIt) {
            System.out.println("Found " + searchfor + " at index " + i);
        } else {
            System.out.println(searchfor + " not in the array");
        }
    }
}
程序输出:
java 复制代码
Found 12 at index 4
解释:
  • 在这个例子中,我们通过 for 循环遍历数组,寻找数字 12
  • 一旦找到了,break 语句就会终止循环,程序跳到后面的输出部分。
  • 如果找到了目标数字,输出其位置;如果没找到,就输出提示信息。

2. 带标签的 break(Labeled break

带标签的 break 语句用于跳出嵌套循环或多层 switch 语句。它允许你指定跳出外层循环,而不仅仅是当前的内层循环。🎯

定义标签 :标签必须放在循环或代码块的前面,以冒号 : 结尾。

示例:在嵌套的 for 循环中使用带标签的 break

假设我们有一个二维数组,需要查找数字 12。我们使用带标签的 break 来跳出外层循环,避免不必要的迭代。

java 复制代码
class BreakWithLabelDemo {
    public static void main(String[] args) {
        int[][] arrayOfInts = {
            {32, 87, 3, 589},
            {12, 1076, 2000, 8},
            {622, 127, 77, 955}
        };
        int searchfor = 12;
        int i;
        int j = 0;
        boolean foundIt = false;

    search:  // 标签声明
        for (i = 0; i < arrayOfInts.length; i++) {
            for (j = 0; j < arrayOfInts[i].length; j++) {
                if (arrayOfInts[i][j] == searchfor) {
                    foundIt = true;
                    break search;  // 使用带标签的 break,跳出外层循环
                }
            }
        }

        if (foundIt) {
            System.out.println("Found " + searchfor + " at " + i + ", " + j);
        } else {
            System.out.println(searchfor + " not in the array");
        }
    }
}
程序输出:
java 复制代码
Found 12 at 1, 0
解释:
  • 我们在一个二维数组中查找数字 12
  • break search 语句会跳出标记为 search 的外层循环。如果 12 被找到,程序会立即退出并输出找到的位置。
  • 这种方式可以有效减少嵌套循环的复杂度,提升代码效率。

📝 总结

  • 未标记的 break :用于跳出当前的循环(如 forwhiledo-while)或 switch 语句,一旦执行,程序就会跳到后面的代码。
  • 带标签的 break :用于跳出嵌套循环或多层 switch 语句,能够跳出指定标签所标记的外层循环,避免不必要的迭代。

带标签的 break 特别适用于复杂的嵌套结构,可以让你灵活地控制程序的执行流。但需要注意的是,过度使用标签可能会让代码难以阅读,因此需要确保标签命名清晰、具备语义,避免降低代码的可读性和可维护性。💡

相关推荐
程序员爱钓鱼2 分钟前
Go语言实战案例-项目实战篇:开发一个 IP 归属地查询接口
后端·google·go
追逐时光者5 分钟前
C#/.NET/.NET Core推荐学习书籍(25年9月更新)
后端·.net
IT_陈寒9 分钟前
Vue3性能优化:掌握这5个Composition API技巧让你的应用快30%
前端·人工智能·后端
excel9 小时前
在 Node.js 中用 C++ 插件模拟 JavaScript 原始值包装对象机制
前端
canonical_entropy10 小时前
从同步范式到组合范式:作为双向/δ-lenses泛化的可逆计算理论
后端·低代码·领域驱动设计
Funcy10 小时前
XxlJob 源码分析06:任务执行流程(一)之调度器揭秘
后端
AAA修煤气灶刘哥11 小时前
数据库优化自救指南:从SQL祖传代码到分库分表的骚操作
数据库·后端·mysql
excel12 小时前
应用程序协议注册的原理与示例
前端·后端
ytadpole14 小时前
揭秘xxl-job:从高可用到调度一致性
java·后端
Moonbit14 小时前
MoonBit 三周年 | 用代码写就 AI 时代的语言答卷
后端·程序员·编程语言