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。

附上程序运行结果:

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/566586.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

dsp实现快速傅里叶的C语言程序,DSP-快速傅立叶变换(FFT)算法实验

《DSP-快速傅立叶变换(FFT)算法实验》由会员分享,可在线阅读,更多相关《DSP-快速傅立叶变换(FFT)算法实验(10页珍藏版)》请在人人文库网上搜索。1、中 南 大 学DSP技术实验报告 实验名称:快速傅立叶变换(FFT)算法实验专业班级: 信…

windows rt c语言,有arm架构的windows平板吗??与x86的win有什么不同?arm写c语言怎样?

有的。现在微软已推出windows8,10月即将上市。这个系统是跨平台的,其中就包括了ARM架构的平板微软也推出了自己的surface平板电脑ARM处理器的三大特点是:耗电少功能强、16位/32位双指令集和合作伙伴众多。1、体积小、低功耗、低成本、高性能;…

c语言某小卖部6天卖出热茶,习题1—1第二课时教案

2.4《线性回归方程》教学设计教学目标:(1)收集现实问题中两个有关联变量的数据作散点图,利用散点图直观认识变量间的相关关系;(2)在两个变量具有线性相关关系时,在散点较长中作出线性直线,用线性回归方程进行预测;(3)理…

c语言开发unity,[Unity3D]U3D开发项目总结

从2月份到现在第一个U3D项目也基本收工,虽然项目结局不是太好,但总算也是成功卖掉并上线,总结将近10个月的时间大家从端游转到手游或从COCOS2转到U3D的整个开发过程。1.资源无疑这是整个项目我觉得做的最差的地方,也是前期最为忽略…

linux dd 进度条,Progress 进度条 – DDProgressHUD

DDProgressHUDProgress 进度条,UIActivityIndicatorView 小菊花,弹窗,状态显示,高度自定义DDProgressHUD的介绍提供了四种类型的展示:显示无限旋转的加载图(比如小菊花,可以自定义),显示文字信息…

android notification自动消失,Notification点击事件和点击消失

版权声明:本文为博主原创文章,未经博主允许不得转载。https://blog.csdn.net/u012691505/article/details/53004930用到Notification遇到一些问题记录一下1.Notification的点击事件(点击弹出对话框)网上有很多做法,我的做法是:(1)…

Android动态图标包制作教程,安卓手机ico图标制作美化图文教程

如何让手机更加与众不同?今天我们就来学习如何利用出色的ico图标制作软件——Axialis IconWorkshop制作出美化手机屏幕的个性图标!如今,每个人都有属于自己的手机,每天使用手机聊QQ、刷微博、玩游戏,可以说手机已经是很多人生活中不可缺少的…

android progressbar 水平动画,Android ProgressBar 自定义样式(三),动画模式

果:和之前的一样,在布局文件中:android:id"id/progressBar3"android:layout_width"wrap_content"android:layout_height"wrap_content"android:indeterminate"false"android:indeterminateDrawable&…

android工程师绩效,Deloitteandroid开发工程师工资待遇怎么样 - 德勤华永会计师事务所(特殊普通合伙) - 职友集...

职责描述:• Ability to design holistic and data-driven financial risk management solutions that strengthen client’s financial risk management capabilities, while enhancing shareholder value• Ability to build an in-depth knowledge of the client…

android gridview行分割线,Android使用GridView实现表格分割线效果

使用gridview实现表格分割线效果,网格布局表格布局也是可以实现的。效果如下:1.主函数代码:package com.example.qd.douyinwu;import android.app.activity;import android.content.context;import android.os.bundle;import android.support…

android代码打开数据库,android – 如何正确关闭并重新打开Room数据库

您好我有2个应用程序依赖于制作和恢复应用程序数据库的备份,只需将数据库文件复制到SD卡中,然后很难确定如何在关闭它之后重新打开Room Database单例以创建数据库’副本.构建数据库:Database(version 15, exportSchema true, entities [list of entities])abstra…

android 按钮控制线程,关于手机安卓-线程测试

如题,我测试时,只执行了一次,第二次卡住时间到后,没有调用超时判断,特请教一下,代码如下:/**********线程控制*******Dim 检测线程Thread.SetShareVar "是否卡主", false检测线程 Th…

android hook 实例,代码实例分析android中inline hook

以下内容通过1、实现目标注入程序,2、实现主程序,3、实现注入函数,4、thumb指令集实现等4个方面详细分析了android中inline hook的用法,以下是全部内容:最近终于沉下心来对着书把hook跟注入方面的代码敲了一遍&#xf…

dax 筛选 包含某个字_筛选状态(ALL与REMOVEFILTERS)

这一章比较绕,但是帮助我们理清切片器的筛选状态以及主要函数对于公式筛选上下文的改变。1.切片器的筛选状态切片器的全选与全不选的状态的区别,我们可以看下图:全不选全选多个点击筛选逐个点击至全部结论初始状态,没有选择任何元…

android数据共享 设计,水文数据共享平台移动端的设计与实现

摘要:水文观测数据是进行流域水文科学及相关科学研究的基础.2010年国家自然科学基金委员会启动重大研究计划"黑河流域生态—水文过程集成研究",提出流域数据工作是"黑河计划"的重要组成部分.本文以黑河流域为研究背景,通过对黑河流域已有各种观…

山东鲁能轨道智能巡检机器人_温湿度传感器在轨道巡检机器人中的应用

▲地下综合管廊智慧管廊建设,是智慧城市在地下的一个缩影,有助于缓解“大城市病”,实现精细化和动态管理。与此同时,各种传感器技术也将被运用到地下综合管廊运维的每一环,这其中,地下管廊巡检机器人便是其…

android显示网络图片控件,Android控件之ImageView(二)

前言在上一篇文章中,我们讲解了如何加载本地图片,那么在实际项目中 ImageView 大多数使用场景是加载网络图片,网络图片其实就是存储在服务器上的文件,我们需要从服务器获取到文件的二进制输入流 Inpustream ,然后将其转…

坯子库曲面推拉教程_一招曲面流动,搞定99%异形建模

曲面流动可以建什么模型?这样的▼这样的▼还有这样的▼那究竟如何使用曲面流动呢?本文告诉你!曲面流动是什么?曲面流动功能相当于Rhino(犀牛)中的“沿曲面流动”命令,可以使来源几何体群组或组件,根据基准平面为参照,…

android o 结构光流程,惊艳亮相!一分钟看懂OPPO Find X 3D结构光技术是什么鬼,太牛了...

法国时间6月19日,OPPO在巴黎卢浮宫正式举办未来旗舰Find X发布会。此次亮相的Find X新机,既有充满艺术感的3D玻璃机身设计,又有3D结构光、曲面全景屏、双轨潜望结构等多项黑科技。众多黑科技中,以3D结构光O-face最受数目。据悉&am…

jframe运行和预览大小不一样_同一款车型,为什么配的轮胎大小还会不一样?【内含福利】...

小编又来给大家送福利啦~阅读完文章之后 戳文章底部阅读原文 岁末巨献 国货好胎!免费体验价值1999元国产轮胎!相信有不少朋友,买车的时候一定会有类似的经历。选车、试驾的时候,看到试驾车配置相当漂亮,尤其搭配的轮圈…