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


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


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

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 亚洲一区二区三区精品视频 | 欧美激情 在线 | 久久精品国产精品青草图片 | 亚洲九九爱 | 97人人看| 亚洲一区二区三区免费 | 青青青在线观看免费视频精品 | 成人最新午夜免费视频 | 亚洲欧美日韩在线不卡中文 | 女人18特级一级毛片免费视频 | 久9久9精品视频在线观看 | 亚洲a免费 | 欧美成人香蕉在线观看 | 99久久精品国产一区二区三区 | 奇米第| 97久久国产一区二区三区四区 | 真实的国产乱xxxx在线播放 | 国产亚洲视频在线观看 | 午夜伦4480yy妇女久久久 | 欧日韩在线不卡视频 | 德国女人一级毛片免费 | 欧美视频第二页 | 亚洲精品98久久久久久中文字幕 | 99视频精品全国免费 | 欧美日韩在线视频 | 亚洲国产精品视频在线观看 | 国产精品国产国产aⅴ | a国产成人免费视频 | 欧美视频亚洲 | 久久精品日日躁精品 | 狠狠的日视频 | 欧美日韩国产综合一区二区三区 | 目韩一区二区三区系列片丶 | 国产在线毛片 | 成人性色生活片免费看爆迷你毛片 | 国产区免费 | 日本工番囗番全彩本子大全 | 中文字幕国产欧美 | 人做人爱视频欧美在线观看 | 国产大学生一级毛片绿象 | 久久www成人看片 |