switch分支注意事项:
1、表达式类型只能是byte,short,int,char,jdk5开始支持枚举,jdk7开始支持String,不支持float,double,long。
2、case给出的值不允许重复,且只能是字面量,不能是变量。
3、不要忘记写break,否则会出现穿透现象。
switch的穿透性:
如果代码执行到没有写break的case块,执行完后将直接进入下一个case块执行代码,直到遇到break才跳出分支,这就是switch的穿透性。
若存在多个case分支的功能代码是一样的,可以用穿透性把流程集中到同一处处理,这样可以简化代码。
switch穿透性案例(月份天数查看器)
public class SwitchDemo1 {
public static void main(String[] args) {
// 需求:用户输入月份可以展示该月份的天数
int month = 4;
switch (month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
System.out.println(month + "月是31天。");
break;
case 2:
System.out.println(month + "月闰年是29天,非闰年是28天。");
break;
case 4:
case 6:
case 9:
case 11:
System.out.println(month + "月是30天。");
break;
default:
System.out.println("数据有误。");
}
}
}