题目:输入月份,显示当月的天数 要求:利用case穿透简化代码
分析:
第一步:确定月份天数情况,1、3、5、7、8、10、12 月均为31天;4、6、9、11均为30天;2月份闰年有29天,平年有28天。
第二步:判断平年闰年的条件是能被4整除且不能被100整除或能被400整除的数
第三步:理解case穿透技术并会使用
注:28天和29天的判断中运用到了三元表达式
表达式 ? 事件1 : 事件2
如果表达式为真,则结果为事件1的结果;如果表达式为假,则结果为事件2的结果。
具体代码如下:
<script type="text/javascript">
// 输入月份,显示当月的天数 要求:利用case穿透简化代码
var year = prompt('请输入年份(如2021):');
var month = prompt("请输入月份(如 3 ):");
var temp;
var fla = 1;
month = Number(month);
year = Number(year)
if(year % 4 == 0 && year % 100 != 0){
temp = 1;
alert('普通闰年')
}else if(year % 400 == 0){
temp = 1;
alert('闰年')
}else{
temp = 0;
alert('平年')
}
// alert('类型'+ typeof temp)
alert('temp的值是' + temp)
switch(month){
//2月
case 2 :
fla == temp ? alert(year + '年的'+ month + '月有29天') : alert(year + '年的'+ month + '月有28天')
// if(fla = true){
// alert(year + '年的'+ month + '月有28天')
// }else{
// alert(year + '年的'+ month + '月有29天')
// }
break;
//有31天的月份
case 1 :
case 3 :
case 5 :
case 7 :
case 8 :
case 10 :
case 12 : alert(year + '年的'+ month + '月有31天')
break;
//有30天的月份
case 4 :
case 6 :
case 9 :
case 11 : alert(year + '年的'+ month + '月有30天')
break;
default : alert(请输入正确的月份)
break;
}
</script>