Java语法的基本部分(以及大多数基于C语言的语法)是在每个语句的末尾都需要分号.
但是,我设法编写了以下程序,而不使用任何分号:
class Hello extends Exception
{
Hello(String s)
{
super(s)
}
}
public class HelloWorld
{
public static void main(String[] args) throws Hello
{
world((char)130)
}
static void world(char c) throws Hello
{
throw new Hello(new String(new char[]{c}))
}
}
Run Code Online (Sandbox Code Playgroud)
运行NetBeans 7.4,它警告我缺少分号,但它确实正常工作.但是,当我在CodeGolf.SE上发布它时,其他人评论说它不适javac用于Eclipse IDE.那么,是否需要分号?
大多数情况下,是必需的分号.
何时需要它们可以在Java语言规范中找到.例如(来自第14章):
14.4.地方变量声明声明
LocalVariableDeclarationStatement:
LocalVariableDeclaration ;
Run Code Online (Sandbox Code Playgroud)
14.6.空陈述
EmptyStatement:
;
Run Code Online (Sandbox Code Playgroud)
14.8.表达陈述
ExpressionStatement:
StatementExpression ;
Run Code Online (Sandbox Code Playgroud)
14.10.断言声明
AssertStatement:
assert Expression1 ;
assert Expression1 : Expression2 ;
Run Code Online (Sandbox Code Playgroud)
14.13.做声明
DoStatement:
do Statement while ( Expression ) ;
Run Code Online (Sandbox Code Playgroud)
等等等等.正如您所看到的那样,分号实际上就在规范中,作为文字文本.我发现这些语言规范总是有点时髦阅读,但基本上它们是从小型的原子概念定义语法,例如'EmptyStatement',关键字和文字文本,直到更高级别的结构,如do-while,if -then-else等因此,如果您想确切知道何时需要分号,请仔细研究规范.
| 归档时间: |
|
| 查看次数: |
1674 次 |
| 最近记录: |