gpt4 book ai didi

java - Java 中需要分号吗?

转载 作者:搜寻专家 更新时间:2023-11-01 01:34:42 28 4
gpt4 key购买 nike

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}))
}
}

运行 NetBeans 7.4 时,它警告我缺少分号,但它确实可以正常工作。然而,当我 posted this on CodeGolf.SE ,其他人评论说它不适用于 javac 或 Eclipse IDE。那么,是否需要分号?

最佳答案

大部分是,分号是必需的。

可以在 Java Language Specification 中找到确切需要它们的时间。 .例如(来自 chapter 14 ):

<强>14.4。局部变量声明语句

LocalVariableDeclarationStatement:
LocalVariableDeclaration ;

<强>14.6。空语句

EmptyStatement:
;

<强>14.8。表达式语句

ExpressionStatement:
StatementExpression ;

14.10。断言声明

AssertStatement:
assert Expression1 ;
assert Expression1 : Expression2 ;

14.13。 do 语句

DoStatement:
do Statement while ( Expression ) ;

等等等等。如您所见,分号实际上就在规范中,作为文字文本。我发现这些语言规范读起来总是有点古怪,但基本上它们是从小的、原子概念(如“EmptyStatement”、关键字和文字文本)到更高级别的结构(如 do-while、if)定义语法-then-else 等。因此,如果您想确切知道何时需要分号,请仔细研究规范。

关于java - Java 中需要分号吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22287337/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com