黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

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

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

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


今天動力節點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.ilovecolors.com.cn/xiazai/2686.html


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


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

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 伦理片第一页 | 在线免费观看黄视频 | 成人窝窝午夜看片 | www.伊人.com| 黄污视频网站 | 成人伊人 | 天天操天天干天天拍 | 男女男精品视频在线播放 | 97天天做天天爱夜夜爽 | 欧洲1站2站3站 | 草草草在线观看 | 大又大又粗又爽又黄毛片女人 | 国产黄色a三级三级三级 | 97视频在线观看免费播放 | 丝袜在线观看 | 你懂的在线视频 | 免费欧美一级 | 免费视频日韩 | 看全黄大色黄大片美女51la | 国产精品欧美一区二区三区 | 美国一级做a一级视频 | 亚洲欧美在线看 | 丝袜美女足淫美足美脚网站 | 影音先锋国产精品 | 成人免费动作大片黄在线 | 久久亚洲欧洲日产国码 | 国产精品一区在线观看 | 丝袜在线视频 | 高h猛烈做哭bl壮汉受小说 | 精品乱人伦一区二区 | 色五丁香 | 天天天天色| 日韩在线2020专区 | 成人激情视频 | 在线一区视频 | 亚洲热久久| 综合网天天 | 羞羞视频免费在线观看 | 色网在线免费观看 | 新版天堂中文资源官网 | 免费人成在线观看69式小视频 |