最近学了条件分支语句-switch,来写一个关于switch的案例
条件分支语句-switch
语法:
switch(已知条件){
case 选项1:...
case 选项2:...
}
1.找到和已知条件完全匹配的选项执行
2.执行完毕代码需要写break,不然会向下穿透
3.可以书写一个default,会在所有选项都不匹配的时候执行
4.当发生穿透效果的时候,会从第一个满足条件的选项开始向下穿透
我们先来简单算一下2022年中的第几天
2022年1月3日是2022年的第3天
2022年3月3日是2022年的第几天呢?
因为2022年是平年,所以2月是28天,则3月3日是31+28+3=62天
今天是10月24日,看看我们怎么用代码实现今天是2022年的第几天?
先定义三个变量year month date 在准备一个变量接收统计结果
年:有平年和闰年
月:按照月份累加之前月份的整月天数
1月不需要累加,而二月需要累加1月整月的天数
日:需要根据平年和闰年计算2月的天数
因为没有break时会向下穿透,当发生穿透效果的时候,会从第一个满足条件的选项开始向下穿透
所以跟我们需求刚好相反,所以应该将代码反过来
我们需要考虑年份是闰年还是平年,因为平年2月有28天,闰年2月有29天,所以要给他加一个if语句
if (year % 4 === 0 && year % 100 !== 0 || year % 400 === 0) {
total += 29
} else {
total += 28
}
case 2: total += 31;
}
然后计算总和:
total += date
完整代码如下:
<script>
// 准备三个变量,分别表示年 月 日
var year = 2022
var month = 10
var date = 24
// 准备一个变量统计结果
var total = 0
// 使用switch叠加月份信息
switch (month) {
case 12: total += 30;
case 11: total += 31;
case 10: total += 30;
case 9: total += 31;
case 8: total += 31;
case 7: total += 30;
case 6: total += 31;
case 5: total += 30;
case 4: total += 31;
case 3: total += 30;
if (year % 4 === 0 && year % 100 !== 0 || year % 400 === 0) {
total += 29
} else {
total += 28
}
case 2: total += 31;
}
total += date
console.log('是今年的第' + total + '天')
</script>
结果: