程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA編程入門知識 >> JAVA基礎 語句標簽的合法使用,以及{}語句塊到底有什麼用?

JAVA基礎 語句標簽的合法使用,以及{}語句塊到底有什麼用?

編輯:JAVA編程入門知識
如寫這樣的一段代碼:
代碼如下:

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
正確的格式有兩種:
代碼如下:

int x = 0;
label13: x = 0;
或者
label13:{ int x = 0;}

於是推想,以前的一個思維誤區,for(){},if(){}之類的用法中,邏輯if()和語句塊{}應該是相互獨立的兩種語法。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved