1、switch语句由一个控制表达式和多个case标签组成。
2、switch控制表达式支持的类型有byte、short、char、int、enum(Java 5)、String(Java 7)。
3、switch-case语句完全可以与if-else语句互转,但通常来说,switch-case语句执行效率要高。
4、default在当前switch找不到匹配的case时执行。default并不是必须的。
5、case匹配,就会顺序执行后面的程序代码,而不管后面的case是否匹配,直到遇见break。
switch语法
switch (表达式) {
case 条件1:
语句1;
break;
case 条件2:
语句2;
break;
…
default:
语句;
}
使用事例
1、int类型switch示例
int i = 1;
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 SwitchEnum {
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示例
public String getTypeOfDayWithSwitchStatement(String dayOfWeekArg) {
String typeOfDay;
switch (dayOfWeekArg) {
case “Monday”:
typeOfDay = “Start of work week”;
break;
case “Tuesday”:
case “Wednesday”:
case “Thursday”:
typeOfDay = “Midweek”;
break;
case “Friday”:
typeOfDay = “End of work week”;
break;
case “Saturday”:
case “Sunday”:
typeOfDay = “Weekend”;
break;
default:
throw new IllegalArgumentException(“Invalid day of the week: ” + dayOfWeekArg);
}
return typeOfDay;
}
参考链接:
http://docs.oracle.com/javase/7/docs/technotes/guides/language/strings-switch.html