大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學習攻略 java中switch case語句需要加入break的原因是什么

java中switch case語句需要加入break的原因是什么

更新時間:2019-09-24 10:12:22 來源:動力節點 瀏覽2764次


今天動力節點java培訓機構小編為大家介紹“java中switch case語句需要加入break的原因是什么”,希望通過此文大家能夠知道switch case語句需要加入break的原因,下面就隨小編一起來了解一下吧。


timg (9).jpg


  java 中使用switch case語句需要加入break 做了具體的實例分析,及編譯源碼,在源碼中分析應該如何使用。


  假設我們有如下這樣一個switch語句:


public static void test(int index) { 

  switch (index) { 

  case 1: 

    System.out.println(1); 

  case 2: 

    System.out.println(2); 

  case 3: 

    System.out.println(3); 

  default: 

    System.out.println("Default"); 

  } 


  當我們在執行上面的方法時,如果我們傳入的參數是1,那么會輸出1、2、3和default,如果傳入的參數是2,那么會輸出2、3和default,這是為什么呢?這是因為switch的case語句是用來根據滿足條件從確定的行開始執行的,如果不加入break語句跳出switch邏輯,則會一直往下執行,這也是為什么上面的測試代碼會出現傳入參數為2時會輸出2、3和default。


  為此,我們也可以看一下上面的代碼編譯后的class文件,通過eclipse打開后,我們可以看到如下內容:


public static void test(int index);

  iload_0 [index]

   tableswitch default: 49

    case 1: 28

    case 2: 35

    case 3: 42

  getstatic java.lang.System.out : java.io.PrintStream [22]

  iconst_1

  invokevirtual java.io.PrintStream.println(int) : void [28]

  getstatic java.lang.System.out : java.io.PrintStream [22]

  iconst_2

  invokevirtual java.io.PrintStream.println(int) : void [28]

  getstatic java.lang.System.out : java.io.PrintStream [22]

  iconst_3

  invokevirtual java.io.PrintStream.println(int) : void [28]

  getstatic java.lang.System.out : java.io.PrintStream [22]

  ldc <String "Default"> [33]

  invokevirtual java.io.PrintStream.println(java.lang.String) : void [35]

  return


  上面編譯后的語句每行前面的數字是程序的指定序號,我們可以把它簡單的理解為行號,我們可以看到數字為1的那行定義了一個switch指定,其默認會跳到49行,如果傳入的參數是1則跳到28行執行,如果是2則跳到35行執行,如果是3則跳到42行執行。那么我們先來看程序的第28行到32行,其對應的就是調用System.out.println輸出1,完了后沒有特殊的指令,程序是會繼續順序執行的,也就是會依次執行35、38、直到57行結束。


  如果我們把源程序的case語句末端都加上break語句,如下這樣:


public static void test(int index) { 

  switch (index) { 

  case 1: 

    System.out.println(1); 

    break; 

  case 2: 

    System.out.println(2); 

    break; 

  case 3: 

    System.out.println(3); 

    break; 

  default: 

    System.out.println("Default"); 

    break; 

  } 


  那么對應的編譯的class文件通過Eclipse打開后可以看到如下內容:


public static void test(int index); 

  iload_0 [index] 

   tableswitch default: 58

    case 1: 28

    case 2: 38

    case 3: 48

  getstatic java.lang.System.out : java.io.PrintStream [22] 

  iconst_1 

  invokevirtual java.io.PrintStream.println(int) : void [28] 

  goto 66

  getstatic java.lang.System.out : java.io.PrintStream [22] 

  iconst_2 

  invokevirtual java.io.PrintStream.println(int) : void [28] 

  goto 66

  getstatic java.lang.System.out : java.io.PrintStream [22] 

  iconst_3 

  invokevirtual java.io.PrintStream.println(int) : void [28] 

  goto 66

  getstatic java.lang.System.out : java.io.PrintStream [22] 

  ldc <String "Default"> [33] 

  invokevirtual java.io.PrintStream.println(java.lang.String) : void [35] 

  return


  我們可以看到switch語句默認會執行58行,如果傳入的參數是1則會執行28行,如果是2則會從38行開始執行,接著我們可以看到28行開始是執行的System.out.println(1)的邏輯,完了后會順序執行到35行,35行的指令是會引導程序執行到第66行,也就是跳出了switch邏輯,對應我們的測試代碼就是程序結束了。這也是為什么我們在使用switch語句時通常需要在每個case語句結束時加入break指令的原因。


timg (10).jpg


以上就是動力節點java培訓機構小編介紹的“java中switch case語句需要加入break的原因是什么”的內容,希望對大家有幫助,更多java最新資訊請繼續關注動力節點java培訓機構官網,每天會有精彩內容分享與你。


相關免費視頻教程推薦——java初級入門教程下載


switch case:http://www.dabaquan.cn/xiazai/2686.html


switch case中常見注意事項:http://www.dabaquan.cn/xiazai/2685.html


提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 牛牛影视在线入口 | 欧美午夜精品久久久久免费视 | 久久精品视频一区二区三区 | 日本人的色道www免费一区 | 中文字幕伦理聚合第一页 | 婷婷亚洲激情 | 精品久久久久久久久免费影院 | 人人干人人爱 | 欧洲亚洲视频 | 奇米影视778成人四色狠狠 | 国内精品免费久久影院 | 亚洲高清免费视频 | 亚洲天堂777 | 日本三级中文字幕 | 婷婷涩涩| 狠狠色丁香婷婷综合最新地址 | 日韩黄色网页 | 久久成人亚洲香蕉草草 | 日本一级毛片大片免费 | 免费一区二区三区四区五区 | 亚洲欧美一区在线 | 久青草国产观看在线视频 | 中文字幕色 | 免费在线亚洲 | 亚洲香蕉久久一区二区三区四区 | 国产一区二区在线不卡 | 国产精品分类视频分类一区 | 99视频精品免视3 | 亚洲国产成人精品女人久久久 | 国产一级精品高清一级毛片 | 免费观看欧美精品成人毛片 | 久久综合九色综合97婷婷群聊 | 久久国产精品广西柳州门 | 夜色亚洲 | 天天天天天天操 | 九九精品视频免费 | 亚洲黄色激情视频 | 国产精品 视频一区 二区三区 | 国产毛片精品 | 97在线免费| 欧美精品h在线播放 |