首頁  >  文章  >  Java  >  JAVA語句標籤的合法使用,以及{}語句區塊到底有什麼用

JAVA語句標籤的合法使用,以及{}語句區塊到底有什麼用

高洛峰
高洛峰原創
2017-01-22 16:42:241511瀏覽

如寫這樣的一段程式碼: 

int i; 
{ 
int j=1; 
i=j; 
}

如果這段程式碼是存在於類別定義區域,那麼我們知道它是個普通的語句區塊,用來初始化類別屬性的內容,它會在類別實例化的時候被調用,裡面可以執行一些方法。 
在許多實例裡,它會用於單例等模式,之前加上一個static,來為複雜的類別初始化內容,可以避免一些因載入順序而引起的運行期異常。 
但是,如果這段程式碼出現在方法裡呢? 
它基本上一點意義都沒有。在我自己從前的想法裡,它就是個把程式碼括起來的格式,沒有其他。 
今天寫了一點和「語句標籤」相關的程式碼: 

label17: int i; 
int j; 
ThreadGroup[] arrayOfThreadGroup; 
if (flag) 
break label17; 
return 0;

在「:」位置出現了異常「Syntax error on token ":", { expected after this token」。 
即是說,當程式碼無法單行存在的時候(int i在方法體內部必須有明確的實例化賦值位置),​​label17需要用語句塊標示。 
正確的格式是: 

label17: { 
int i; 
int j; 
ThreadGroup[] arrayOfThreadGroup; 
if (flag) 
break label17; 
return 0; 
} 
或者: 
   label17: 
int i; 
int j; 
ThreadGroup[] arrayOfThreadGroup; 
if (flag){ 
break label17; 
return 0;}

再來看個錯誤的用法: 

label13: int x = 0;

很明顯,在標籤後有個預設的單行語句區塊,這個x在以後的任何位置都無法被使用到,錯誤。提示如下: 
Multiple markers at this line 
- x cannot be resolved to a variable 
- Syntax error on token "int", delete this token 
正確的格式有兩種: ,for(){},if(){}之類的用法中,邏輯if()和語句塊{}應該是兩個相互獨立的語法。

更多JAVA語句標籤的合法使用,以及{}語句塊到底有什麼用相關文章請關注PHP中文網!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn