在C语言中SWITCH语句的各case句中,能出现if语句吗?

新手,望解答详细点,谢谢
2024-11-24 04:36:55
推荐回答(5个)
回答1:

switch语句的语法如下(case、default和break是其配套关键字): switch ( 表达式) {   case 常量表达式1: 语句1; 可以是多行,可以加括号,也可以不加,到下一个case之前,都是本case的语句范围 [break;] 中括号,表示此语句可以没有  case 常量表达式2: 语句2; [break;] ……  case 常量表达式n: 语句n; [break;]  [default:] 语句n+1; [break;]}说明:break 表示退出{ }case后面只能跟一个值(加冒号:),而不能是一个表达式 switch(表达式) 后面没有分号(;){}前后没有分号(;)default语句可以出现在任何位置,但建议写到最后,表示除去case匹配之外的其它情况。也可以没有default语句switch语句规则:case标签必须是常量表达式(constant Expression) 只能针对基本数据类型使用switch,这些类型包括int、char等。对于其他类型,则必须使用if语句。 case标签必须是惟一性的表达式;也就是说,不允许两个case具有相同的值。如果两个case语句间没有break,则执行完匹配的case语句后,会顺序执行下面的语句,直到遇到break语句或switch结束连续的两个case语句表示,这两个case是同一种情况

回答2:

可以的

int GetMonthDays(int year,int month)  //子函数--获得每个月的天数
{
switch(month)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
return 31;
break;
case 4:
case 6:
case 9:
case 11:
return 30;
break;
case 2:
if((year%4==0 && year%100!=0 ) || (year%400==0))  //如果是闰年,2月份为29天
{
return 29;
}
else //如果不是闰年,2月份为28天
{
return 28;
}
break;
}
}

回答3:

可以的case分支里面可以出现任何语句,这是没问题的,比如:

switch(expr)
{
    case 1:
        if(con){
            //语句
        }else{
            //语句
        }
        break;
   default:
       break;
}

这个是正确的语法

回答4:

switch相当于if-else语句的,既然在if-else种可以嵌套if-else语句,那么switch语句种当然也可以嵌套其他各种语句呀,包括if-else语句。希望对你有帮助!

回答5:

case 确定的值:执行语句
后面语句出现什么都可以,但是case后面的值必须是常量。