问答详情
源自:4-17 switch与if语句的应用

为什麽switch后面条件month要-1?

#include <stdio.h>
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!=0) || year%400==0)
                    day+=29;
               else
                    day+=28;
        case 1:day+=31;
    }
    printf("2008年8月8日是该年的第%d天",day);
 return 0;
}

提问者:笑田 2015-12-05 22:29

个回答

  • 徐二喜
    2015-12-05 22:56:45

    首先,不加break会顺序执行接下来的代码,再有就是,假设,今天是8月8号,8月其实只过了8天,前面七个月是真正过完了的......