M.A*_*ali 11 java java-compiler-api
我不小心写了一个带有两个分号的java语句.java编译器没有显示任何错误,它运行.
码:
System.out.println("Length after delete the text is "+name.length());;
Run Code Online (Sandbox Code Playgroud)
出于学习目的,我尝试在分号后添加不同的字符,并且java编译器已将编译时错误显示为令牌")"上的语法错误,删除此标记.
这个说法:
System.out.println("Length after delete the text is "+name.length());)
Run Code Online (Sandbox Code Playgroud)
为什么java将分号和其他字符视为不同?
小智 32
因为双分号不是双分号,而是分号加空语句.一个空的陈述,什么也不做,不是一个错误.
Paŭ*_*ann 15
正如其他答案所述,通常第二个分号被解释为空语句,只要声明是允许的,这是允许的.
实际上,有些情况下双分号确实会产生错误:
public int method() {
return 1;;
}
Run Code Online (Sandbox Code Playgroud)
当编译器确定的位置不可达(这在JLS精确限定,但后一个直接包括位置return,break,continue和throw),没有语句被允许存在,甚至不是空的.
das*_*ght 10
根据Java语言标准,第二个分号是一个空语句.
空语句什么都不做.
EmptyStatement:
;
Run Code Online (Sandbox Code Playgroud)
执行空语句总是正常完成.
| 归档时间: |
|
| 查看次数: |
9174 次 |
| 最近记录: |