//switch分支语句(书写格式):
/* switch(需要判断的变量){
case 值1:
判断的变量 和 值1 全等时 所执行的代码;
break;
case 值2:
判断的变量 和 值2 全等时 所执行的代码;
break;
case 值3:
判断的变量 和 值3 全等时 所执行的代码;
break;
default:
判断的变量 和 前面任何一个case的值 都不全等时,所执行的代码语句
} */
//switch分支语句
//switch分支语句 进行的是:全等判断,成立条件是判断的变量 和 case的值必须全等(恒等)
//首先,判断的变量 和 第一个case的值 进行比较,如果全等,则执行对应case下的代码
//如果不全等,则继续向下一个case的值进行比较,依次操作执行
//如果最终所有的case的值都不和判断的变量全等,则执行default下的代码语句
//switch语句中break关键字是必须要写的,如果缺失了break就会发生switch穿透(case穿透)
/*switch穿透
switch穿透是指当switch语句中某一个case被匹配到并且case下的语句会被执行
当case部分逻辑执行完毕之后如果没有break的话就谁一直往下一个case匹配
也就是说在switch语句中当case被匹配到,程序只有遇到break才会跳出switch分支语句
在某些情况下我们可以利用switch穿透 实现一些代码优化 */
// 输入一个数字 1-12,表示月份,判断这个月有多少天?
var month = +prompt('请输入要查询的月分,1-12');
console.log(month);
switch (month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
alert(month + '月有31天');
break;
case 2:
alert(month + '月 平年有31天 闰年有29天');
break;
case 4:
case 6:
case 9:
case 11:
alert(month + '月有30天');
break;
default:
alert('你输入的月份不存在');
}
/* 方法二:
switch (month) {
case 1:
alert(month + '月有31天');
break;
case 2:
alert(month + '月 平年有31天 闰年有29天');
break;
case 3:
alert(month + '月有31天');
break;
case 4:
alert(month + '月有31天');
break;
case 5:
alert(month + '月有31天');
break;
case 6:
alert(month + '月有31天');
break;
case 7:
alert(month + '月有31天');
break;
case 8:
alert(month + '月有31天');
break;
case 9:
alert(month + '月有30天');
break;
case 10:
alert(month + '月有31天');
break;
case 11:
alert(month + '月有30天');
break;
case 12:
alert(month + '月有31天');
break;
default:
alert('您输入的月份不存在');
} */