如何使用swicth

一、

举个例子:计算几月几号是那一年的第几天?

有两个方案都是用的switch(知识举例子,有漏洞,请谅解)

方案一:

<script>
    /*
    * (1)先判断是几月
    * (2)在判断是几号
    * (3)把每月的天数确定好
    * (4)再让前几个的天数相加
    * */
    var month = prompt("请输入月份");
    var day = prompt("请输入几号");
    month = Number(month);
    day = Number(day);
    var result;
    switch(month)//先计算某月以前月份的总天数
    {
        case 1:sum=0;break;
        case 2:sum=31;break;
        case 3:sum=59;break;
        case 4:sum=90;break;
        case 5:sum=120;break;
        case 6:sum=151;break;
        case 7:sum=181;break;
        case 8:sum=212;break;
        case 9:sum=243;break;
        case 10:sum=273;break;
        case 11:sum=304;break;
        case 12:sum=334;break;
    }
    result=sum+day;
    alert(result);

</script>

从这个可以看出来,这些天数都是死定好的,提前计算好的,很明显感觉不是非常好
下面还有一个例子:
方案二:
<script>
    var year = Number(prompt("请输入年份"));
    var month =  prompt("请输入月份");
    var day =  prompt("请输入日期");
    month = Number(month);
    day = Number(day);
    var num=0;
    switch (month-1){
        case 11: num += 30;
        case 10:num += 31;
        case 9:num += 30;
        case 8:num += 31;
        case 7:num += 31;
        case 6:num += 30;
        case 5:num += 31;
        case 4:num += 30;
        case 3:num += 31;
        case 2:   if((year % 400 == 0) || (year % 4 == 0) && (year % 100 != 0)){
    num += 29;
    }else{
    num += 28;
    }
        case 1:num += 31;

    }
    num = num +day;
    alert(num);
</script>
 是不是感觉下面的更好些:下面这个用的很巧妙,先让用户输入月份,然后输入的月份在减一,
这样可以得到之前月数的总天数,再到switch语句进行运算,case的值按倒叙排列,直到依次加
完为止。再加上日期,结果就出来了。
我们大部分人用switch语句都是配合break来进行的,而这个例子就让他自己运行完这个switch,
而且case:只是一个标号,switch(key)里面的key就相当于一个要找到的门牌号,而case就是门
牌号,当找到的时候就会执行里面的代码。

 
 




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值