本質上說,要做到這一點在Java中沒有實際的方式。你似乎試圖做一個「goto」,而這在Java中不被支持。 break label
和continue label
語句只能分支到包含標記語句。
現在根據你可以寫這個Java的形式文法:
s: {
continue s;
System.out.println("I am not supposed to print this");
}
System.out.println("I am suppose to print this");
但仍然將不能編譯,原因有二:
參見:Alternative to a goto statement in Java
但還有讓你的代碼一個相當棘手的方式來 「工作」:
static final boolean flag = true; // class attribute ...
...
s: {
if (flag) break s;
System.out.println("I am not supposed to print this");
}
System.out.println("I am suppose to print this");
「測試」 不會被評估編譯器使break
實際上是無條件的。但JLS表示,第一個println
將視爲可達,以便您不會得到無法訪問的代碼錯誤。
我想這可能是有用的,如果你是生成這個源代碼。除此之外,(IMO)只是一種好奇心。使用常規的if
/else
聲明...或通過完全刪除第一個「打印」來更簡單。
Java不支持'GOTO'(和類似的)。坦率地說,我認爲'GOTO'會讓代碼混淆。 – str