標籤: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