Java中break使用标签中断循环

在Java中,break语句有三种用法,

  • 第一种是用于终止switch语句中的语句序列
  • 第二种是用于退出循环
  • 第三种是用作goto语句的“文明”形式

我们知道,goto语句会破坏程序的结构,所以我们一般不会去使用这种功能。但是在某些情况下,goto语句对于流程控制很有价值并且结构合法。比如当退出深度嵌套的一系列循环时,goto语句很好用。虽然Java中保留了goto关键字,但是没有goto语句,也没有任何用到这个关键字的地方,所以为了能够使用类似像goto语句这样的功能,Java定义了break语句的一种扩展形式。即通过这种形式的break语句,可以中断一个或多个代码块。而且这些代码块不必是某个循环或switch语句的一部分,他们可以是任何代码块。此外这种形式的break语句可以精确指定准备在哪个位置继续执行,因为这种形式的break语句是使用标签来进行工作的。

使用标签的break语句的一般语法形式如下:

break label;

label是一个代码块的标签的名称。它既可以是一个独立的代码块,也可以作为另一条语句的目标代码块。当执行这种形式的break语句时,程序的执行控制会跳出由标签命名的代码块,具有标签的代码块必须包含break语句,但是不必立即包含break语句。也就是说,可以使用带有标签的break语句跳出一系列嵌套的代码。但是不能使用break语句将控制转移出不包含break语句的代码块。

为了命名代码块,可以在代码块之前放一个标签,标签可以是任何合法的java标识符,后面跟随一个冒号。只要代码块被命名,就可以使用命名标签作为break语句的目标,这样一来就可以跳出代码块,在标识的代码块的末端恢复执行。

如下程序代码:

public class BreakTest {
    public static void main(String[] args) {
        a:
        {
            System.out.println("0");
            b:
            {
                System.out.println("1");
                c:
                {
                    System.out.println("2");
                    if (true)
                        break a;
                }
                System.out.println("3");//被跳出
            }
            System.out.println("4");//被跳出
        }
        System.out.println("5");
    }
}

执行结果:0  1  2  5  // 省略换行

所以break语句的这种扩展形式提供了goto语句的优点,而没有goto语句的问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

swadian2008

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值