阅读 63

Java break语句!强行终止循环详解(附学习路线图)

所有流行的编程语言中都有循环语句。JAVA 中采用的循环语句与C语言中的循环语句相似,主要有 while、do-while 和 for!

那么在某些时候需要在某种条件出现时强行终止循环,而不是等到循环条件为 false 时才退出循环。

这个时候就可以使用 break 来完成这个功能!

007.jpg

break 用于完全结束一个循环,跳出循环体。不管是哪种循环,一旦在循环体中遇到 break,系统将完全结束该循环,开始执行循环之后的代码。

在Java中,break 语句有 3 种作用: 在 switch 语句中终止一个语句序列、使用 break 语句直接强行退出循环和使用 break 语句实现 goto 的功能。

使用 break 语句直接强行退出循环

可以使用 break 语句强行退出循环,忽略循环体中的任何其他语句和循环的条件判断。在循环中遇到 break 语句时,循环被终止,在循环后面的语句重新开始。

例1:小明参加了一个 1000 米的长跑比赛,在 100 米的跑道上,他循环地跑着,每跑一圈,剩余路程就会减少 100 米,要跑的圈数就是循环的次数。但是,在每跑完一圈时,教练会问他是否要坚持下去,如果回答 y,则继续跑,否则表示放弃。

public static void main(String[] args) {
    Scanner input = new Scanner(System.in); // 定义变量存储小明的回答
    String answer = ""; // 一圈100米,1000米为10圈,即为循环的次数
    for (int i = 0; i < 10; i++) {
        System.out.println("跑的是第" + (i + 1) + "圈");
        System.out.println("还能坚持吗?"); // 获取小明的回答
        answer = input.next(); // 判断小明的回答是否为y?如果不是,则放弃,跳出循环
        if (!answer.equals("y")) {
            System.out.println("放弃");
            break;
        }
        // 循环之后的代码
        System.out.println("加油!继续!");
    }
}复制代码

该程序运行效果如下:

跑的是第1圈
还能坚持吗?
y
加油!继续!
跑的是第2圈
还能坚持吗?
n
放弃复制代码

尽管 for 循环被设计为从 0 执行到 10,但是当小明的回答不是 y 时,break 语句终止了程序的循环,继续执行循环体外的代码,输出“加油!继续!”。

注意: 一个循环中可以有一个以上的 break 语句,但是过多的 break 语句会破坏代码结构。switch 循环语句中的 break 仅影响 switch 语句,不会影响循环。

使用 break 语句实现 goto 的功能

有时候,在嵌套很深的循环语句中会发生一些不可预料的事情。此时可能更加希望跳到嵌套的所有循环语句之外。通过添加一些额外的条件判断实现各层循环的检测很不方便。

break 语句可以实现 goto 的功能,并且 Java 定义了 break 语句的一种扩展形式来处理退出嵌套很深的循环这个问题。

通过使用扩展的 break 语句,可以终止执行一个或者几个任意代码块,这些代码块不必是一个循环或一个 switch 语句的一部分。同时这种扩展的 break 语句带有标签,可以明确指定从何处重新开始执行。

break 除了具有 goto 退出深层循环嵌套作用外,还保留了一些程序结构化的特性。

标签 break 语句的通用格式如下:

break label;复制代码

label 是标识代码块的标签。当执行这种形式的 break 语句时,控制权被传递出指定的代码块。被加标签的代码块必须包围 break 语句,但是它不需要直接包围 break 的块。也就是说,可以使用一个加标签的 break 语句来退出一系列的嵌套块,但是不能使用 break 语句将控制权传递到不包含 break 语句的代码块。

用标签(label)可以指定一个代码块,标签可以是任何合法有效的 Java 标识符,后跟一个冒号。加上标签的代码块可以作为 break 语句的对象,使程序在加标签的块的结尾继续执行。

注意: 通常紧跟 break 之后的标签,必须在 break 所在循环的外层循环之前定义才有意义。

在 switch 语句中终止一个语句序列

在 switch 语句中终止一个语句序列,就是在每个 case 子句块的最后添加语句“break;”

例 2:在节目的抽奖环节里,节目组会根据每位嘉宾的座位号来进行抽奖游戏,根据不同的号码来决定奖项的大小。使用 switch 语句编写 Java 程序来完成奖项分配,其实现代码如下。

public static void main(String[] args) {
    System.out.println("请输入座位号码:");
    Scanner sc = new Scanner(System.in);
    int num = sc.nextInt();
    switch (num) {
    case 8:
        System.out.println("恭喜你,获得了三等奖!");
        break;
    case 88:
        System.out.println("恭喜你,获得了二等奖!");
        break;
    case 888:
        System.out.println("恭喜你,获得了一等奖!");
        break;
    default:
        System.out.println("谢谢参与!");
        break;
    }
}复制代码

当用户输入的号码为 888 时,获取的 num 值为 888,则与第三个 case 后的值匹配,执行它后面的语句,输出“恭喜你,获得了一等奖!”,然后执行 break 语句,跳出整个 switch 结构。如果输入的号码与 case 中的值都不匹配,则执行 default 后的语句。

程序执行结果如下:

请输入座位号码:
888
恭喜你,获得了一等奖!


请输入座位号码:
88
恭喜你,获得了二等奖!


请输入座位号码:
66
谢谢参与!复制代码

最新的学习路线图汇总如下:

零基础Java学习线路图 - 副本.jpg

Java break语句!强行终止循环详解大概就是这样了,大家理解了吗?如果觉得文字枯燥难懂的话可以看视频学习理解,更容易掌握!!

Java300集零基础适合初学者视频

今天主要就给大家分享这些了,有其他意见和想法的朋友可以留言讨论哦,我们一起学习,一起进步!


作者:学习Java中
链接:https://juejin.cn/post/7028854361769918501


文章分类
代码人生
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐