C语言CASE语句嵌套,C语言中switch case语句的嵌套

给一个含有嵌套的switch case的一段完整代码:

#include

int main()

{

int n=1;

int m=2;

switch(n)

{

case 1:

m++;

case 2:

n++;

case 3:

switch(n)

{

case 1:

n++;

case 2:

m++;

n++;

break;

}

case 4:

m++;

break;

default:

break;

}

printf("%d %d",m,n);

return 0;

}

代码看起来很简单,但是,如果不时很清楚的了解switch case用法的话,结果还是容易出错。

首先给出它的运行结果:m=5,n=3。当程序走到case 3 的时候,遇到了嵌套的switch case语句,此时m=3,n=2。进入嵌套语句,和switch里面表达式匹配的是case 2,所以程序运行(m++;n++),此时,m=4,n=3。接着,后面遇到break,跳出switch case语句。但是,注意:break跳出的是嵌套的switch case语句,而外面的case 3后面并没有break语句。因此,出了case 3之后程序还需进入case 4,进而m自加,再遇到break语句,然后跳出整个switch case语句。所以。最终得到的m=5,n=3。

附上程序运行结果:

0818b9ca8b590ca3270a3433284dd417.png

思考:看了这个代码我们又能发现什么,我们需要知道什么?

1.不是所有case语句最后都跟有break。我们起初见到的代码里,基本上每个case最后都跟有break,它是指当switch后面括号里的表达式与哪一个case后面的常亮表达式匹配时,直接进入这个case,执行完里面的语句后,遇到break,直接退出整个switch case语句。实际当中,我们还会碰到类似于上述代码的情况(不是所有case语句最后都跟有break),这个时候,程序总是从匹配的case执行,直到遇到break或者程序走到最后的default结束,退出switch case语句。

2.switch后面括号里的结果必须是整形值。因为这个值是要和case语句后面直接跟的常量表达式进行匹配的。

3.break在switch case语句中主要是将语句划分成不同的部分,方便匹配后跳出switch语句。

4.default的位置并不是固定的。为了使程序正常运行,它放在case之间的时候,后面必须跟上break语句;如果放在最后,可以跟break语句,也可以不跟。

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值