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

发布网友 发布时间:2022-04-23 09:30

我来回答

5个回答

热心网友 时间:2023-09-30 20:02

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是同一种情况

热心网友 时间:2023-09-30 20:02

可以的

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;
}
}

热心网友 时间:2023-09-30 20:03

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

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

这个是正确的语法

热心网友 时间:2023-09-30 20:04

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

热心网友 时间:2023-09-30 20:04

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

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com