public static void main(String[] args) {
System.out.println("World Hello!");;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;
;;;;;;;;;
;;;;;;;
;;;;;;;;;;;;;;
;;;;;
}
正常人是我想说的:"那些分号在那里做的是什么!?"
答案 0 :(得分:11)
因为另一个分号旁边的一个简单分号是一个空语句。所以,很多半冒号彼此相邻都是很多空洞的陈述。它编译并运行没有任何问题。
答案 1 :(得分:7)
根据Oracle Java Language Specification:
空语句什么都不做。
EmptyStatement: ;
空语句的执行总是正常完成。
由于它自己允许连续分号的语言,编译器不会产生错误。
您还可以检查字节码,看看发生了什么,代码中有很多&#34 ;;" :
// Stack: 1, Locals: 1
public Duh1();
0 aload_0 [this]
1 invokespecial java.lang.Object() [8]
4 return
Line numbers:
[pc: 0, line: 3]
Local variable table:
[pc: 0, pc: 5] local: this index: 0 type: Duh
// Method descriptor #15 ([Ljava/lang/String;)V
// Stack: 2, Locals: 1
public static void main(java.lang.String[] args);
0 getstatic java.lang.System.out : java.io.PrintStream [16]
3 ldc <String "World Hello!"> [22]
5 invokevirtual java.io.PrintStream.println(java.lang.String) : void [24]
8 return
Line numbers:
[pc: 0, line: 5]
[pc: 8, line: 15]
Local variable table:
[pc: 0, pc: 9] local: args index: 0 type: java.lang.String[]
Line numbers:
[pc: 0, line: 5]
[pc: 8, line: 6]
和代码只有1&#34;;&#34; :
// Method descriptor #6 ()V
// Stack: 1, Locals: 1
public Duh2();
0 aload_0 [this]
1 invokespecial java.lang.Object() [8]
4 return
Line numbers:
[pc: 0, line: 3]
Local variable table:
[pc: 0, pc: 5] local: this index: 0 type: Duh2
// Method descriptor #15 ([Ljava/lang/String;)V
// Stack: 2, Locals: 1
public static void main(java.lang.String[] args);
0 getstatic java.lang.System.out : java.io.PrintStream [16]
3 ldc <String "World Hello!"> [22]
5 invokevirtual java.io.PrintStream.println(java.lang.String) : void [24]
8 return
Line numbers:
[pc: 0, line: 5]
[pc: 8, line: 6]
Local variable table:
[pc: 0, pc: 9] local: args index: 0 type: java.lang.String[]
Line numbers:
[pc: 0, line: 5]
[pc: 8, line: 6]
正如您可以检查单个&#34 ;;&#34;的两个版本的字节码完全相同连续多次&#34;;&#34;。
答案 2 :(得分:0)
因为分号仅表示换行符。这意味着我们可以简单地写:
cout << "Hello World\n"; return 0;
甚至没有在换行符上书写。请记住,在单独的行上书写更加整洁。