`
181054867
  • 浏览: 148179 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

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

阅读更多

 

 

 

 

 

 

 

 

 

 

 

今天在看某开源项目的源代码时发现一个很有趣的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
分享到:
评论
47 楼 congdepeng 2011-03-28  
代码和数组一样,都是以开头的一个指针指向的。

所以这样的写法和Python里面的写法一样的自然。

46 楼 coolboywy 2011-03-28  
caoxudong818 写道
兰州,你可以在代码里的某一行加入一段网址,不会出错。
例如:
public static void main(String[] args) {
        Date d = new Date(0);
        System.out.println("toString: " + d);
        DateFormat df = DateFormat.getDateTimeInstance();
        http://www.google.com
        System.out.println("Default format: " + df.format(d));
        df.setTimeZone(TimeZone.getTimeZone("GMT"));
        System.out.println("Near the Bow Bells: " + df.format(d));
    }


确定http:不会被打上红色波浪线?
45 楼 zhouhaoqun_luntan 2011-03-25  
前阵子刚用过,不过书上好像都不推荐
44 楼 sjmei 2011-03-22  
嗯,学习了
43 楼 qjtttt 2011-03-20  
nesuk 写道
这种风格的代码在反编译是会出现问题,所以也不被提倡。

有问题么- -?我咋不晓得呢。。
42 楼 sunrie 2011-02-24  
宁愿单独增加一个条件变量来处理也不用这个!
41 楼 ericyanzhe 2011-02-24  
thihy 写道
这个确认很多人不知道。但却是基本语法。为啥呢?因为大家学Java很不系统,基础不够扎实。

不一定不系统吧,当初在大学里面老是只是提到过,但是压根就不许我们用。相信很多人不用的话都会忘掉。
40 楼 cectsky 2011-02-24  
caoxudong818 写道
兰州,你可以在代码里的某一行加入一段网址,不会出错。
例如:
public static void main(String[] args) {
        Date d = new Date(0);
        System.out.println("toString: " + d);
        DateFormat df = DateFormat.getDateTimeInstance();
        http://www.google.com
        System.out.println("Default format: " + df.format(d));
        df.setTimeZone(TimeZone.getTimeZone("GMT"));
        System.out.println("Near the Bow Bells: " + df.format(d));
    }

介绍一下
39 楼 caoxudong818 2011-02-23  
兰州,你可以在代码里的某一行加入一段网址,不会出错。
例如:
public static void main(String[] args) {
        Date d = new Date(0);
        System.out.println("toString: " + d);
        DateFormat df = DateFormat.getDateTimeInstance();
        http://www.google.com
        System.out.println("Default format: " + df.format(d));
        df.setTimeZone(TimeZone.getTimeZone("GMT"));
        System.out.println("Near the Bow Bells: " + df.format(d));
    }
38 楼 cectsky 2011-02-23  
sw1982 写道
label, c语言开始就有

您的头像给力
37 楼 Brera 2011-02-23  
去年用过一次,在没用过
36 楼 sheep3600 2011-02-23  
唉,switch时候用到过break,剩下的都没用过。
35 楼 hydrogen2008 2011-02-23  
这个确实是基本的东西,很多书上都会介绍。
记的很清楚,我们老师当时就说了这个不要用。
34 楼 thihy 2011-02-23  
这个确认很多人不知道。但却是基本语法。为啥呢?因为大家学Java很不系统,基础不够扎实。
33 楼 maowei009 2011-02-23  
天呐,竟然有很多人不知道这个用法么?java基本语法不是有这个的么~~ :
32 楼 sw1982 2011-02-23  
label, c语言开始就有
31 楼 Rooock 2011-02-23  
i2534 写道
这个就不能用.
goto的苦还没吃够吗?
特别是在多重循环嵌套中用这个就是噩梦.
谁用谁知道.



还真是谁用谁知道.
我在js的多重循环里用着很好.
30 楼 xiang04551ran 2011-02-23  
java书里面讲for循环一般都会讲到吧
29 楼 hyl1234 2011-02-23  
方法在书中的确看到过,不过一直都没有用。
不过LZ还是有心了。
28 楼 teacher1998 2011-02-23  
在core java的第三章: fundamental programming structures in java里有所,
如上面同志所述,这是替代goto的。

相关推荐

    语法分析器 Java

    然后,语法分析器利用这些标记构建抽象语法树(AST,Abstract Syntax Tree),这是一个结构化的表示,反映出源代码的语法规则。这个过程是基于一套预定义的语法规则,通常由上下文无关文法(CFG,Context-Free ...

    括号匹配java源代码

    用户可以输入一个字符串,该程序就会检测该字符串的括号是否匹配。如果匹配,就输出`YES`,否则输出`NO`。 java.util包 在本程序中,我们使用了`java.util`包中的`BufferedReader`和`InputStreamReader`类来实现...

    java版本词法、语法分析器以及三地址代码生成实验源代码

    Java版本的词法、语法分析器以及三地址代码生成是编译原理领域的重要实践内容,它们涉及到了编译器设计的基础阶段。在这个实验中,我们使用Java编程语言实现了这些核心功能,这使得代码具有跨平台的特性,并且利用...

    基于java的语法分析实现代码与程序报告

    在实现代码中,我们可能需要定义一个类层次结构,每个类代表AST中的一个节点类型,如表达式节点、声明节点等。解析器在遇到特定的语法规则时,会创建相应的节点对象并连接它们,形成一棵表示源代码结构的树。 程序...

    java 实现Pascal语法分析

    本文将深入探讨如何使用Java实现Pascal语言的语法分析,这是一个涉及编译器设计的重要部分。 首先,我们需要理解Pascal语言的基本语法。Pascal是一种结构化编程语言,它具有严谨的语法结构,包括声明部分、程序部分...

    java语法基础.pdf

    Java语句必须以分号结尾,花括号用于组织语句块,而空格和换行在Java中是允许的,但不影响程序执行。类的命名通常遵循驼峰命名法,每个单词首字母大写。 总的来说,Java语法基础涵盖了变量、控制结构、类与对象、...

    基于java实现的语法分析器及词法分析器

    在这个项目中,我们关注的是一个基于Java实现的语法分析器和词法分析器。Java是一种广泛使用的编程语言,具有跨平台、面向对象和丰富的类库等特性,使得它成为构建这种复杂工具的理想选择。 首先,让我们深入了解...

    java语法教程.ppt

    Java 语法教程主要介绍了编程语言Java的基础知识,包括它的语法结构和常用语句。学习Java语法是为了快速理解和掌握编程的基本概念,为后续的面向对象编程打下基础。 首先,Java语言的基本组成包括标识符、关键字和...

    java模拟编译器,实现词法,语法分析,生成语法树

    Java模拟编译器是一个用于理解和处理Java源代码的软件,它涵盖了词法分析、语法分析以及生成语法树等多个关键步骤。下面我们将深入探讨这些概念及其在Java模拟编译器中的应用。 首先,我们从词法分析开始。词法分析...

    java语法规则

    Java支持重载,即同一个类中可以有多个同名但参数列表不同的方法。 7. **继承与多态** 继承允许一个类(子类)继承另一个类(父类)的属性和方法。多态是子类对象可以替换父类对象,且子类可以有自己的特有行为。 ...

    java实现的语法分析程序

    在这个项目中,我们关注的是如何使用Java语言来设计和实现一个语法分析器,该分析器包含了词法分析阶段以及自顶向下的递归下降语法分析方法。 词法分析是编译器的第一步,它的目标是将源代码分解成一系列有意义的、...

    java版语法分析程序

    总之,Java版的语法分析程序是一个用于理解和表示源代码结构的关键工具,它利用了Java的强大功能和Swing的可视化特性,为开发者提供了一个直观的方式来理解和调试代码。这样的工具对于教学、软件开发以及编译器设计...

    Java语法.ppt

    这段代码展示了如何使用关键字(如`public`, `class`, `void`, `if`)、标识符(如`Example`, `main`, `i`, `c`)和分隔符(如分号, 括号)来构建一个简单的Java程序。通过这些基本元素的组合,开发者可以构建出复杂...

    Java语法基础2019.pdf

    块是由一对大括号({})包围的语句集合,用于定义一个作用域。使用分隔符-如分号、块和空白来组织代码,使其结构清晰易懂。 7. 数组与字符串: Java中的数组用于存储固定大小的同类型元素,可以通过索引访问元素。...

    JAVA的Velocity语法学习

    通过以上介绍,我们可以看到Velocity是一个强大且灵活的模板引擎,对于Java开发者来说,掌握Velocity的使用可以提升开发效率,使代码更专注于业务逻辑,而不是页面展示。希望这份资料能帮助你更好地学习和应用...

    pl/0词法分析器和语法分析器(java)

    每个匹配的标记都会被封装为一个对象(如Token类),并返回给语法分析器。为了提高效率,词法分析器通常会使用回溯机制来处理嵌套的括号或其他结构。 **语法分析器(Parser)** 语法分析器接收词法分析器产生的标记...

    Java实现的编辑器语法着色功能

    在编程世界中,一个良好的代码编辑器是程序员的得力助手。它不仅提供代码高亮显示,还有诸如自动完成、错误检测等高级功能。本文主要关注的是“Java实现的编辑器语法着色功能”。语法着色是编程环境中的一项重要特性...

    Java开发技术大全(500个源代码).

    second.java 属于一个命名包的类 showDiff.java 演示隐藏与覆盖之间的区别 showSomething.java 测试运行时多态 stupid.java 试图覆盖最终方法的类,它有错误 Sub.java 一个简单的子类 Super.java 一个基类 ...

    JavaCC语法分析器 基于Eclipse插件 能从文件读取源代码输出语法树

    在这个项目中,JavaCC生成的解析器被封装为一个Eclipse插件,用户可以直接在Eclipse内处理源代码,查看其对应的语法树,这对于理解和调试代码非常有帮助。 Test.java是测试类,通常包含用于验证解析器功能的代码。...

    关于java try()的括号中代码含义(实现Closeable接口)(csdn)————程序.pdf

    当一个类实现了`java.lang.AutoCloseable`接口(`Closeable`是其子接口),那么这个类的实例可以在`try`语句的括号内声明,Java编译器会自动在`try`块结束时调用`close()`方法,释放资源。这样可以避免忘记关闭资源...

Global site tag (gtag.js) - Google Analytics