• 手机版

    扫码体验手机版

  • 微信公众号

    扫码关注公众号

国内首家协议开发

软芯音视解码保护平台

在线
客服

发布
需求

在线
聊天

天盟
APP

天盟APP下载

关注
微信

微信扫一扫访问
顶部

这段代码如何运行的,请教各位

#include
int main()
{
    /* 定义需要计算的日期 */
    int year = 2008;
    int month = 8;
    int day = 8;
    switch(month-1)
    {
        case 12:day+=31;
        case 11:day+=30;
        case 10:day+=31;
        case 9:day+=30;
        case 8:day+=31;
        case 7:day+=31;
        case 6:day+=30;
        case 5:day+=31;
        case 4:day+=30;
        case 3:day+=31;
        case 2:if((year%4==0 && year%100) || year%400==0) day+=29; else day+=28;
        case 1:day+=31;
    }
    printf("2008年8月8日是该年的第%d天",day);
        return 0;
}
这是如何进行运行的?

免责声明:本内容仅代表回答会员见解不代表天盟观点,请谨慎对待。

版权声明:作者保留权利,不代表天盟立场。

使用道具 举报

全部参与1

首先这里的代码是没有错的,计算是8月8日是第几天,那前7月是全的,8月只过8天,day=8,然后用day去一个个月加过去,7月:day=day+31;以此类推到1月:day=day+31。
month为8,switch里条件month-1为7,一点问题都没有。
看一下switch那一章。有一句话,你可能没有注意,大概是当没有break的时候,switch会向下一直执行下去。
这里的话,month-1为7的时候,就会从case 7 ,一直到case 1,然后才结束switch.
所以这里花式的计算了足月的天数,8月8日,中,switch里帮你计算了8天加上1-7月的天数和。


附:http://www.imooc.com/code/5207
在使用switch语句时还应注意以下几点:
1、在case后的各常量表达式的值不能相同,否则会出现错误。
2、在case子句后如果没有break;会一直往后执行一直到遇到break;才会跳出switch语句。

使用道具 举报

发新帖

发布任务需求已有1031164位用户正在使用天盟网服务

发布分类: *
任务预算: *
需求内容: *
手机号码: *
任务商家报价为
  • 预算价 :
  • 成交价 :
  • 完工期 :
  • 质保期 :

* 最终任务项目以服务商报价、双方协商为准!