java switch-case
switch(表達(dá)式)
- 表達(dá)式:
- 可以是byte,short,int,char
- JDK5以后可以是枚舉
- JDK7以后可以是字符串
- case B:C
- B的取值只能是常量
- C不需要用大括號包裹著
- 多個(gè)case中的值不能相同,所以B必須是一個(gè)常量
- default可以放在任意位置(但執(zhí)行結(jié)果可能會(huì)不同,見以下代碼)
String opStr = "DIV";
switch (OpCodeEnum.matchOpCode(opStr)) {
default :
System.out.println("減法");
break;
case MUL:
System.out.println("乘法");
break;
case DIV:
System.out.println("除法");
break; // 此處不管有沒有break,都只打印了 "除法"
}
- 有break時(shí),打印結(jié)果是 "除法"
- 沒有break時(shí),打印結(jié)果還是是 "除法"
調(diào)換位置后:
String opStr = "DIV";
switch (OpCodeEnum.matchOpCode(opStr)) {
case MUL:
System.out.println("乘法");
break;
case DIV:
System.out.println("除法");
default :
System.out.println("減法");
break;
}
打印出的是:
"除法"
"減法"
default的順序結(jié)論:
- 當(dāng)case沒有符合條件時(shí),跟default的順序無關(guān)(都會(huì)執(zhí)行default語句)
- 當(dāng)case有符合條件且沒有break時(shí),跟default的順序有關(guān)(是否執(zhí)行default語句)