The NoteBook of EricKong

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            611 Posts :: 1 Stories :: 190 Comments :: 0 Trackbacks
          下面是switch的簡單寫法:
          switch(A){
          case B;
          }
          A部分中的值必須是int型的,或者是能夠自動進行飲試轉換成int型的表達式。也就是說A部分可以是byte/short/char/int型的。
          其次要強調的是該程序中B部分的值必須是單個byte/short/char/int型的值,或者是final型的變量。
          但是final型的變量也是有要求的,也即是它必須是編譯時的常量,怎么講呢,看下面的程序段:
          final int a = 0;
          final int b;
          第二個語句就是在編譯時不能夠被識別出值的變量,因為它沒有初始化,當然,這條語句也是錯誤的。
          所以總結case后的值可以是常數值或final型的值。

          再看下面的程序段:

          public class TestSwitch {
          public static void main(String[] args){
          byte a = 11;
          switch(a){// C
          case 11 : System.out.println(" 11 "); break;
          case 225 : System.out.println(" 11 "); break;// D
          }
          }
          }

          該代碼正確嗎?答案是否定的。雖然在 C 處是合法的也即是byte型的a值可以出現在switch中,但是 D處的語句也即是第二個case后的值是225大小超過了byte的范圍,所以是錯誤的。再就是case后的值不能出現重復。因此在使用中要注意。

          =====================
          再就是在使用switch-case中最容易忽視的就是忘記在每個case后處理完后忘記寫上break;語句。那它帶來的后果是什么呢,下面小程序段會告訴你:
          public class TestSwitchCase {
          public static void main(String[] args){
          byte a = 2;
          switch(a){
          case 1 : System.out.println(" A ");
          case 2 : System.out.println(" B ");
          case 3 : System.out.println(" C ");
          case 4 : System.out.println(" D ");
                          default : System.out.println(" default ");
          }
          }
          }
          =========輸出結果為:
           B 
           C 
           D 
           default 
          --------------------------
          看到了嗎?連default都執行,注意結束符break;就OK了。
          posted on 2014-01-06 14:59 Eric_jiang 閱讀(337) 評論(0)  編輯  收藏 所屬分類: Java
          主站蜘蛛池模板: 安福县| 宜川县| 微山县| 平邑县| 楚雄市| 林口县| 吉木萨尔县| 宜州市| 安阳市| 镇康县| 噶尔县| 阿图什市| 石台县| 祁东县| 五峰| 乌拉特前旗| 林甸县| 鸡东县| 手游| 汉沽区| 沙湾县| 普宁市| 上蔡县| 鄂托克旗| 土默特左旗| 克山县| 庆城县| 濮阳市| 万年县| 威宁| 韶山市| 乐都县| 莆田市| 石阡县| 连云港市| 措美县| 鄯善县| 介休市| 桐乡市| 马鞍山市| 镇平县|