java中的switch

來源:互聯網
上載者:User

標籤:keyword   main   數值   break   query   pre   log   size   key   

switch 語句由一個控製表達式和多個case標籤組成。

switch 控製表達式支援的類型有byte、short、char、int、enum(Java 5)、String(Java 7)。

switch-case語句完全可以與if-else語句互轉,但通常來說,switch-case語句執行效率要高。

default在當前switch找不到匹配的case時執行。default並不是必須的。

一旦case匹配,就會順序執行後面的程式碼,而不管後面的case是否匹配,直到遇見break。

使用執行個體:

1).int類型switch樣本

int i = 3;

switch (i) {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(0);}2).枚舉(Enum)類型switch樣本public class TestSwitch {     static enum E {        A, B, C, D    }     public static void main(String args[]) {        E e = E.B;        switch (e) {        case A:            System.out.println("A");            break;        case B:            System.out.println("B");            break;        case C:            System.out.println("C");            break;        case D:            System.out.println("D");            break;        default:            System.out.println(0);        }    }3).String類型switch樣本

String str = "C";

switch (str) {case "A":    System.out.println("A");    break;case "B":    System.out.println("B");    break;case "C":    System.out.println("C");    break;default:    System.out.println(0);}4).break的陷阱:break在switch中用於結束當前流程。一旦case匹配,就會順序執行後面的程式碼,而不管後面的case是否匹配,直到遇見break。int i = 2;switch (i) {case 1:    System.out.println(1);case 2:    System.out.println(2);case 3:    System.out.println(3);default:    System.out.println(0);}輸出結果:2305).default: default在當前switch找不到匹配的case時執行。default並不是必須的。int x = 0;switch (x) {case 1:    System.out.println(1);case 2:    System.out.println(2);default:    System.out.println("default");} 注意事項1).switch(A),括弧中A的取值只能是整型或者可以轉換為整型的數實值型別,比如byte、short、int、char、還有枚舉;需要強調的是:java7之前long和String類型是不能作用在switch語句上的, java7之後String可以使用.2).case B:C;case是常量運算式,也就是說B的取值只能是常量或者int、byte、short、char(比如1、2、3、200000000000(注意了這是整型)),如果你需要在此處寫一個運算式或者變數,那麼就要加上單引號; case後的語句可以不用大括弧,就是C不需要用大括弧包裹著;

3).case後面必須要跟常量, 且不能為long或float類型:

private int CLICK_QUERY = 1;

 

switch (tag) {  case CLICK_QUERY://錯誤,CLICK_QUERY不是常量, 用final修飾, 必須是final類型常量,不能是final的變數, 例如:final int CLICK_QUERY = 1; 但不能是final int CLICK_QUERY ;
query(); break;

4).case後面的數值的範圍:

byte a = 11;  switch(a){// C  case 11 : System.out.println(" 11 "); break;  case 225 : System.out.println(" 11 "); break;// 225超過了byte的範圍(byte的範圍是-127~128), 因此會出錯

 

 

   

java中的switch

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.