Java switch 语句完整讲解
Java switch 语句完整讲解1. 基础语法switch(表达式){case常量1:执行代码;break;case常量2:执行代码;break;// 更多casedefault:都不匹配时执行;break;}规则switch()括号里只能是byte、short、int、char、String(JDK7)、枚举case后面必须是常量不能写变量、区间break跳出switch不加会发生case穿透default可选匹配不到任何case就执行2. 基础示例数字匹配intweek3;switch(week){case1:System.out.println(周一);break;case2:System.out.println(周二);break;case3:System.out.println(周三);break;default:System.out.println(无效星期);}3. String 字符串匹配JDK7及以上StringgradeA;switch(grade){caseA:System.out.println(优秀);break;caseB:System.out.println(良好);break;default:System.out.println(一般);}4. case穿透不加break匹配到后会继续执行后面所有case直到遇见breakintnum2;switch(num){case1:System.out.println(1);case2:System.out.println(2);case3:System.out.println(3);break;}// 输出2 3穿透实用场景多case共用一段代码intmonth2;switch(month){case1:case2:case12:System.out.println(冬季);break;case3:case4:case5:System.out.println(春季);break;}5. 枚举搭配switch专业常用enumSeason{SPRING,SUMMER,AUTUMN,WINTER}publicclassTest{publicstaticvoidmain(String[]args){SeasonsSeason.SUMMER;switch(s){caseSPRING:System.out.println(春天);break;caseSUMMER:System.out.println(夏天);break;default:System.out.println(其他季节);}}}6. switch新特性Java14 箭头switch无break不需要写break不会穿透更简洁intscore90;switch(score/10){case10,9-System.out.println(优秀);case8-System.out.println(良好);case7,6-System.out.println(及格);default-System.out.println(不及格);}还可以带返回值Stringresswitch(score/10){case10,9-优秀;case8-良好;default-不及格;};7. switch 和 if 区别速记switch只做等值判断适合固定常量多选一分支多效率高if-else支持区间 ||复杂逻辑万能判断8. 常见错误case 后写变量 / 范围case n10:非法忘记break导致穿透bugswitch传入long、float、double不支持String区分大小写A和a不相等