switch语句
switch (表达式) { case 1: 语句体1; break; case 2: 语句体2; break; ... default: 语句体n+1; break; }
执行流程:
-
首先计算出表达式的值
-
其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结 束。
-
最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉。
/* 需求:键盘录入星期数,显示今天的减肥活动 周一:跑步 周二:游泳 周三:慢走 周四:动感单车 周五:拳击 周六:爬山 周日:好好吃一顿 */ public static void main(String[] args){ // 1. 键盘录入星期数据,使用变量接收 Scanner sc = new Scanner(System.in); System.out.println("请输入"); int week = sc.nextInt(); // 2. 多情况判断,采用switch语句实现 switch(week){ // 3. 在不同的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; } } }
-
概述 : 如果switch语句中,case省略了break语句, 就会开始case穿透
-
需求 : 键盘录入星期数,输出工作日、休息日 (1-5)工作日,(6-7)休息日
-
示例代码:
/* case穿透是如何产生的? 如果switch语句中,case省略了break语句, 就会开始case穿透. 现象: 当开始case穿透,后续的case就不会具有匹配效果,内部的语句都会执行,直到看见break,或者将整体switch语句执行完毕,才会结束。 */ public static void main(String[] args){ Scanner sc = new Scanner(System.in); System.out.println("请输入星期数:"); int week = sc.nextInt(); switch(week){ case 1: case 2: case 3: case 4: case 5: System.out.println("工作日"); break; case 6: case 7: System.out.println("休息日"); break; default: System.out.println("您的输入有误"); break; } } }