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语句的目标,这样一来就可以跳出代码块,在标识的代码块的末端恢复执行。

  如下程序代码:

class Dome {
	public static void main(String[] args) {
		a:{
	       System.out.println("0");
	       b:{
	       System.out.println("1");
	       c:{
	       System.out.println("2");
	       if(1==1)
	       break a;
	       }
	       System.out.println("3");
	       }
	       System.out.println("4");
	       }
	       System.out.println("5");
	}
}

  输出结果如下:

  0 

  1

  2

  5

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


  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值