题目:编写一个应用程序,提示输入月份,然后判断该月份的天数。
switch(month){
case 1:
day=31;
break;
case 2:
day=28;
break;
case 3:
day=31;
break;
case 4:
day=30;
break;
...
}
这样的做法很烦琐,switch能不能对几个相同条件作出相同的判断?好象以下
switch(month){
case 1,3,5,7,9,11:  //这明显是错误的,我只是把我的意思表达出来
day=31;
break;
case 4,6,8,10,12:
day=30;
break;
case 2:
day=28;
break;
}

解决方案 »

  1.   

    可以这样做:case 4:
    case 6:
    case 8:
    case 10:
    case 12:
    day=30;
    break;
      

  2.   

    直接把对应的day写一个数组,用month作下标取一下不就可以了
    days={31,28/29,31,40 ...}day=days[month-1]
      

  3.   

    switch(month)
    {
    case 1:
    case 3:
    case 5:
    case 7:
    case 9:
    case 11:  
    return day=31;

    case 4:
    case6:
    case8:
    case10:
    case12:
    return day=30;

    case 2:
    return day=28;
    }
    为什么肯定错啊 这样肯定是可以的
      

  4.   

    believefym(暮色,miss,迷失,miss) 的方法更好些
      

  5.   

    case相当于标签,和else if是有区别的,break的意思是跳出,如果几个相同条件作出相同的判断,不用break就可以了,
      

  6.   

    两种都行啊,不过case的话呢,在case 2:这里可以加上判断年份等等的逻辑,更灵活一点。另外答数组解决的跑题啦,楼主问的是switch