给一个含有嵌套的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。

附上程序运行结果:

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

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语句,也可以不跟。

C语言CASE语句嵌套,C语言中switch case语句的嵌套相关推荐

  1. C语言switch中break的作用,C语言中switch...case语句中break的重要性

    在C语言中switch...case语句是经常用到的,下面我介绍一下在使用该语句时候需要注意的一个细节问题.话不多说,直接举例子: 例子1: switch(fruit) { case 1:printf ...

  2. c语言 case break,C语言中switch...case语句中break的重要性

    在C语言中switch...case语句是经常用到的,下面我介绍一下在使用该语句时候需要注意的一个细节问题.话不多说,直接举例子: 例子1: switch(fruit) { case 1:printf ...

  3. C语言中switch case语句的实现

    在程序中我们经常用到switch case,它的用法就不再用多说了.计算switch中的值然后比较,跳转到相应的分支.很多人说在编译是时通过转化成if..else来实现的.但实际使用时尤其在调试代码时 ...

  4. c语言goto语句用法_C语言中的goto语句该不该使用?

    关于C语言的goto语句存在很多争议,很多书籍都建议"谨慎使用,或者根本不用".这里先不做过多的讨论,存在即合理,既然是C语言中的一个知识点,我们还是有必要学会使用.先看一些got ...

  5. c语言switch语句最大嵌套数,浅谈C语言中switch 语句的嵌套使用

    浅谈C语言中switch 语句的嵌套使用 作者:未知 [摘要]switch语句是一种分支控制语句,它的应用在程序设计中起至了很重要的作用.由于其格式复杂,对于初学者来说很难掌握,switch语句的嵌套 ...

  6. c语言switch语句嵌套,浅谈c语言中switch语句的嵌套使用

    switch语句是一种分支控制语句,它的应用在程序设计中起到了很重要的作用.由于其格式复杂,对于初学者来说很难掌握,switch语句的嵌套使用更是让初学者难以理解.本文通过介绍switch嵌套语句的形 ...

  7. c语言switch语句支持的字符有哪些,C语言中switch()语句的括号内可以是什么型别的呢?...

    C语言中switch()语句的括号内可以是什么型别的呢?以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! C语言中swit ...

  8. c语言while函数作用,详解C语言中的while语句

    什么是C语言的while语句?它的作用是什么呢?估计很多初学者对此都是一知半解.下面课课家笔者就为大家详细解释C语言中的while语句的含义和作用. 首先笔者先给大家介绍C语言中的共有的三大常用的程序 ...

  9. c语言do while什么意思,C语言中do while语句的用法是什么?

    C语言中"do while"语句用于语句的循环判断:语法为:"do {代码语句} while(表达式);".它与while循环的不同在于:"do wh ...

最新文章

  1. c++控制台应用每一列数据如何对齐_Python数据分析第五节 pandas入门
  2. Github学习系列之Github是什么?
  3. python程序的执行顺序_Python方法中的执行顺序
  4. nginx与apache详细性能对比
  5. I帧、B帧和P帧的特点和编码的基本流程
  6. 地表水预测模型软件_前沿科技 | 中科院等科学家合作研究开发出高速列车关键构件疲劳寿命预测软件系统...
  7. MPI 环境搭建问题-运行程序闪退
  8. 03-搭建Eureka注册中心和服务端
  9. 什么使软件程序员成为专业人士?
  10. CPU为什么不做成圆的而是方的?
  11. vue 高德轨迹自定义两点之间的颜色_vue 还是 react?这是一个问题
  12. 4个空格 tab vetur_Python成为专业人士笔记–程序行空白及tab缩进的作用
  13. 卡通动漫漫画微信小程序源码开源版
  14. 七彩虹固态硬盘 慧荣SM2258XT主控开卡教程,SM2259XT2貌似差不多
  15. 为什么实对称矩阵要求其正交矩阵,而不是可逆矩阵使其对角化?
  16. Lodop打印参数方法参考
  17. 百度指数、淘宝指数学习笔记
  18. docker网络模式--资源分配叙述(1)
  19. 几个可以整蛊你朋友的 Python 程序
  20. rpm安装mysql8(通过脚本快速配置)

热门文章

  1. 2021软考报名开始!(附官网报名入口)
  2. 虚拟机下载地址+Linux CentOS7 地址
  3. 高中学历能学python_高中学历学完Python就能干人工智能?后院活动部
  4. 好消息acesse_【好消息】“Access Bars能量清理疗愈”公益讲座报名即日开始!
  5. 笔记+R︱Logistics建模简述(logit值、sigmoid函数)
  6. 一道题学习node.js中的CRLF注入
  7. 独立游戏 5000 万下载百万 DAU 竟不花一分钱?
  8. 中文事件抽取关键技术研究(谭红叶 博士毕业论文)
  9. C语言之位域(位段)入门详解
  10. 关于饭店手续一次性消毒餐具问题的看法