java - 为什么这些分号不会产生错误?

标签 java syntax

<分区>

我知道结束语句需要分号,如这段代码所示:

public class Main{
    public static void main(String[] args){
        System.out.println("blah blah blah and stuff")
    }
}

println 语句末尾需要一个分号,否则程序将无法编译。

最近不小心在println语句的末尾加了两个分号:

System.out.println("blah blah blah and stuff");;

我注意到了,所以我开始在我的程序中到处放置分号

public class Main{;;;;;;
    public static void main(String[] args){;;;;;;;;
        System.out.println("blah blah blah and stuff");;;;;;
    };;;;;;
};;;;;

此代码编译、打印字符串,没有错误或意外结果。我已经搜索过为什么编译器似乎只是忽略了这些分号,但从未发现任何特别提到这一点的内容。那么,为什么这些分号不会产生语法错误?

最佳答案

这被称为 empty statement并且有效。

An empty statement does nothing.

用处不大

while (checkCondition()) // may have some side effects
    ;

关于java - 为什么这些分号不会产生错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22272498/

相关文章:

java - 错误 : Servlet Jar not Loaded. .. 违规类 : javax/servlet/Servlet. 类

java - 将一个长字符串读入内存

Java枚举使用构造函数参数实例化

java - 从java中的对象获取类列表

scala - scala方法参数的java注释

c++ - 程序不识别智能指针

django View 的python代码

java - 在 Java 的默认包中导入类的语法是什么?

Python:在实例方法中一般引用一个类?

java - boolean 值类?