文章目录
- 前言
- 一、switch
- 二、语法
- 三、示例
- 四、case穿透示例
前言
switch 在开发过程中其实并不常用,95%以上都是用 if 而不是 switch。因为 switch 能做的 if 能做,switch 不能做的 if 也能做,而反过来就不行了。所以对于 switch 能够看懂代码即可
一、switch
switch语句,属于选择结构,又被称为分支语句/条件控制语句。是根据"比较值"进行选择执行的一类语句
对于switch可以简单理解为:
code | 中文 |
---|---|
switch | 用于存放"比较值" |
case | 等于 |
break | 中断,用于防止case穿透。中断比较,不再继续往下执行 |
default | 如果所有case都不匹配,则执行default |
二、语法
switch(比较值) {case 值1:语句体1;break;case 值2:语句体2;break;...default: 语句体n+1;break;}
三、示例
int dayOfWeek = 2;switch (dayOfWeek) {case 1: // 如果dayOfWeek等于1,打印星期一System.out.println("星期一");break;case 2: // 如果dayOfWeek等于2,打印星期二System.out.println("星期二");break;case 3: // 如果dayOfWeek等于3,打印星期三System.out.println("星期三");break;case 4: // 如果dayOfWeek等于4,打印星期四System.out.println("星期四");break;case 5: // 如果dayOfWeek等于5,打印星期五System.out.println("星期五");break;case 6: // 如果dayOfWeek等于6,打印星期六System.out.println("星期六");break;default: // 否则,打印星期日System.out.println("星期日");break;}
四、case穿透示例
/** 去掉部分break,出现case穿透* 执行结果:星期二 星期三 星期四 星期五 星期六 星期日* 执行流程:* 1、dayOfWeek初始值为2,往下执行switch* 2、遇到case 1 dayOfWeek的值为2,而case 1的值为1,2不等于1,不满足条件,不执行语句体* 3、然后遇到case 2 dayOfWeek的值为2,而case 2的值为2,2等于2,满足条件,打印星期二* 4、打印之后没有在case 2遇到break,继续往下执行,并且这种执行会直接忽略后续的所有case和default,不做任何判断,直接执行后续的所有语句体,直到遇到break为止*/int dayOfWeek = 2;switch (dayOfWeek) {case 1: // 如果dayOfWeek等于1,打印星期一System.out.println("星期一");break;case 2: // 如果dayOfWeek等于2,打印星期二System.out.println("星期二");case 3: // 如果dayOfWeek等于3,打印星期三System.out.println("星期三");case 4: // 如果dayOfWeek等于4,打印星期四System.out.println("星期四");case 5: // 如果dayOfWeek等于5,打印星期五System.out.println("星期五");case 6: // 如果dayOfWeek等于6,打印星期六System.out.println("星期六");default: // 否则,打印星期日System.out.println("星期日");break;}