选择结构的标准switch语句和穿透的switch语句45/999
作者:互联网
switch语句格式:
switch(表达式) { case 常量值1: 语句体1; break; case 常量值2: 语句体2; break; ... default: 语句体n+1; break; }
执行流程
- 首先计算出表达式的值
- 其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结 束。
- 最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉。
public static void main(String[] args) { //定义变量,判断是星期几 int weekday = 6; //switch语句实现选择 switch(weekday) { 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语句中,表达式的数据类型,可以是byte,short,int,char,enum(枚举),JDK7后可以接收字符串
switch的穿透 // switch 的 穿透 // 什么是switch的穿透 // 如果在 switch 中没有定义break , switch 会从定位的程序,一直执行到所有switch程序的结束 // 这种现象称为switch的穿透 // 效果是,从定位的程序位置,穿透所有的case和default,执行之后所有的程序 // 一般情况下,我们杜绝switch的穿透这样的现象的出现 // 但是在特殊情况下,我们还是可以灵活使用switch的穿透,优化代码 // switch穿透的小应用// 随机生成 1-12 的月份,通过程序,输出这个月有多少天 // 暂时不考虑闰年的情况
// 1,3,5,7,8,10,12月是31天 // 4,6,9,11月是30天 // 2月是28天
var month = parseInt(Math.random() * (15 + 1 - 1) + 1);
// 使用if判断来写 if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12) { console.log(`现在是${month}月,本月有31天`); } else if (month == 4 || month == 6 || month == 9 || month == 11) { console.log(`现在是${month}月,本月有30天`); } else if (month == 2) { console.log(`现在是${month}月,平年有28天,闰年有29天`); } else { console.log(`现在是${month}月,地球上就12个月,您是外星人吧`); }
// 当前是判断是否是某个具体的月份数值,这样的比较判断,更使用使用switch来定义 // 利用穿透来优化switch语句 // 1,3,5,7,8,10,12 时,执行的程序都是完全相同的 // 可以利用 switch 的穿透,来优化程序 // 思路: 当数值是这些数值内容的时,没有break,直接执行穿透效果,最终都执行相同的程序 // 方法: 之前不定义要执行的程序,只在最后一种情况中,定义执行程序和break
switch (month) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: console.log(`现在是${month}月,本月有31天`); break;
case 4: case 6: case 9: case 11: console.log(`现在是${month}月,本月有30天`); break;
case 2: console.log(`现在是${month}月,平年有28天,闰年有29天`); break; default: console.log(`现在是${month}月,地球上就12个月,您是外星人吧`); break; }
标签:语句,case,穿透,45,month,break,switch 来源: https://www.cnblogs.com/agzq/p/16421171.html