大战熟女丰满人妻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 來源:動力節點 瀏覽2628次


今天動力節點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


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

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 日韩成人免费一级毛片 | 亚洲免费精品视频 | 一级二级毛片 | 性久久久久 | 国产精品久久永久免费 | 欧美日韩亚洲精品一区二区 | 日韩高清在线二区 | 国产精品久久久久久久久鸭 | 色无极综合 | 99资源在线| 欧洲毛片 | 羞羞视频免费网站 | 一级做a毛片免费视频 | 91av在线国产| 欧美日韩国产成人综合在线影院 | www久久久久 | 在线播放精品一区二区啪视频 | 精品乱人伦一区二区 | 免费精品国产福利片 | 轻轻色在线视频中文字幕 | 日韩中文在线观看 | 亚洲精品一 | 国产精自产拍久久久久久 | 99热这里只有免费国产精品 | 国产一区二区三区久久 | 免费超级淫片日本高清视频 | 日韩一区在线视频 | 老妇综合久久香蕉蜜桃 | 色婷婷久久合月综 | 久久夜色精品国产尤物 | 欧美日韩视频精品一区二区 | 亚洲欧美精品 | 一级女人18片毛片免费视频 | 久久99精品久久久久久牛牛影视 | 五月天婷五月天综合网在线 | 欧美亚洲综合另类成人 | 免费一级网站 | 99久久99这里只有免费费精品 | 狠狠骑 | 国产精品第 | 国产91精品系列在线观看 |