论坛首页 入门技术论坛

新发现了Java一个语法,可以给花括号内的代码块命名

浏览 11033 次
该帖已经被评为新手帖
作者 正文
   发表时间:2011-02-23   最后修改:2011-02-23

 

 

 

 

 

 

 

 

 

 

 

今天在看某开源项目的源代码时发现一个很有趣的Java语法,见代码:

		bb : for (int num = 1; num <= 10; num++) {
			System.out.println("--------------- num : " + num);
			for (int i = 0; i < 5; i++) {
				if(num == 8) break bb;
				System.out.println("curr : " + i);
			}
		}
		cms : if(true) {
			System.out.println("test");
			break cms;
		}

在多重嵌套循环的情况下,可以任意跳出某个父级循环 ,这个语法平时还是有用的,所以分享一下,知道的朋友不要拍砖,不要投新手帖,因为我认为很多朋友都不知道,呵呵!

 

以上代码测试运行在:JDK1.6下。


  • 大小: 28.7 KB
   发表时间:2011-02-23  
第一次知道, 呵呵
我试了下 提示
The label test is never explicitly referenced
0 请登录后投票
   发表时间:2011-02-23  
这是java语言取消goto后,给出的替代方案
不过有一种观点是 label 比 goto 更可怕。。。。。
0 请登录后投票
   发表时间:2011-02-23  
silenceburn 写道
这是java语言取消goto后,给出的替代方案
不过有一种观点是 label 比 goto 更可怕。。。。。

呵呵,不经常使用,所以不作评论啦
0 请登录后投票
   发表时间:2011-02-23  
呵呵 的确很少人知道,上次告诉一个同事,他居然不信,为此与我打赌,输给我一顿午饭,所以对于break label还是有很好的印象的
0 请登录后投票
   发表时间:2011-02-23  
不单是break可以用,continue也可以用。。。
0 请登录后投票
   发表时间:2011-02-23  
循环嵌套时 常用到的
0 请登录后投票
   发表时间:2011-02-23  
很早就用过..java书上都会讲的吧
0 请登录后投票
   发表时间:2011-02-23  
这个是配合goto,continue , break的标签吧,很少用的,一般不推荐用
0 请登录后投票
   发表时间:2011-02-23  
这种风格的代码在反编译是会出现问题,所以也不被提倡。
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics