switch语句用法:
0. switch语句由一个控制表达式和多个case标签组成
1. switch控制表达式支持的类型有byte、short、char、int、enum(JDK5)、String(JDK7)
2. switch-case语句完全可以与if-else语句互转,但通常来说,switch-case语句执行效率要高
3. default语句在当前switch找不到匹配的case时执行,default并不是必须的
4. 一旦case匹配,就会顺序执行后面的程序代码,直到遇见break(根据这一特点,可以写一些巧妙的代码)
看下面的示例:
1 public class SwitchTest { 2 3 public static void main(String[] args) { 4 // TODO Auto-generated method stub 5 switchTest((byte)1); 6 switchTest((short)2); 7 switchTest(3); 8 switchTest('4'); 9 switchTest("5"); 10 switchTest(Gender.MAN); 11 } 12 13 public static void switchTest(int var) { 14 switch (var) { 15 case 3: 16 System.out.println(var); 17 break; 18 } 19 } 20 21 /*public static void switchTest(boolean var) { 22 switch (var) { 23 case true: 24 System.out.println(var); 25 break; 26 } 27 }*/ 28 29 public static void switchTest(short var) { 30 switch (var) { 31 case 2: 32 System.out.println(var); 33 break; 34 } 35 } 36 37 public static void switchTest(byte var) { 38 switch (var) { 39 case 1: 40 System.out.println(var); 41 break; 42 } 43 } 44 45 /*public static void switchTest(long var) { 46 switch (var) { 47 case 1: 48 System.out.println(var); 49 break; 50 } 51 }*/ 52 53 public static void switchTest(String var) { 54 switch (var) { 55 case "5": 56 System.out.println(var); 57 break; 58 } 59 } 60 61 public static void switchTest(char var) { 62 switch (var) { 63 case '4': 64 System.out.println(var); 65 break; 66 } 67 } 68 69 public static void switchTest(Gender var) { 70 switch (var) { 71 case MAN: 72 System.out.println(var); 73 break; 74 default: 75 System.out.println("error"); 76 break; 77 } 78 } 79 } 80 81 enum Gender{ 82 MAN, WOMAN 83 }
switch的参数类型:
在JDK6以前,switch仅支持能够等价为int的类型(byte、short、int、char)和枚举类型
在JDK7中加入了String
但long、float、double、boolean等不支持