switch语句是选择语句
格式:
执行流程
- 首先计算出表达式的值
- 其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结束。
- 最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉
执行流程图
注意事项:
- switch语句中,表达式的数据类型,可以是byte,short,int,char,enum(枚举),JDK7后可以接收字符串
- case的穿透性:在switch语句中,如果case的后面不写break,将出现穿透现象,也就是不会在判断下一个case的值,直接向后运行,直到遇到break,或者整体switch结束
- case后面只能是常量,不能是变量,而且,多个case后面的值不能出现相同的
- default可以省略吗?可以省略,但是不建议,因为它的作用是对不正确的情况给出提示。
- break可以省略吗?建议不要省略,会出现一个现象:case穿透。
- switch语句的结束条件:遇到break就结束了或者:执行到switch的右大括号就结束了
- default一定要在最后吗?不是,可以在任意位置。但是建议在最后。
代码举例:
public class Demo05Switch { public static void main(String[] args) { //定义变量,判断是星期几 int weekday = 6; //switch语句实现选择 switch (weekday) { // weekday 和哪个case的值相同,就执行哪个后面的对应语句 case 1: System.out.println("星期一"); break; case 2: System.out.println("星期二"); break; case 3: System.out.println("星期三"); break; case 4: System.out.println("星期四"); break; case 5: System.out.println("星期五"); break; case 6: System.out.println("星期六"); break; case 7: System.out.println("星期日"); break; default: System.out.println("你输入的数字有误"); break; } } }
执行结果