版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C语言分支结构-switch,杨俊华,学习目标与课程安排,目标:理解掌握C语言switch分支结构。 课程安排 背景知识回顾 switch分支结构介绍 注意事项 实例讲解 典型错误 总结,1.1 if语句回顾,1.if (表达式) 语句 2.if (表达式) 语句1 else 语句2 3.if(表达式1)语句1 else if(表达式2) 语句2 else if(表达式3) 语句3 else if(表达式m) 语句m else 语句n,1.2 if - else if 多分支选择结构,if (表达式) 语句1else if (表达式) 语句2 else if (表达式) 语句3else ,先判
2、断表达式1的值,一直这样做下去,直到得出最后结果,流程图如左:,为0就执行下一个判断,非0就执行下面的语句,缺点: if 与 else 的配对容易混淆,2.1 Switch 多分支结构,switch(表达式) case 常量1: 语句块1; break; case 常量2: 语句块2; break; . case 常量n: 语句块n; break; default: 语句块n+1; ,关键字:switch,关键字:break,关键字:case,关键字:default,2.2 执行过程,计算表达式的值,判断与case后哪个常量相等。 若与常量i的值相等,则从语句块i开始执行,直到遇到第一条bre
3、ak语句结束,或执行完语句块n+1结束。 若与任何一个常量的值都不相等,直接执行语句块n+1。,3 实例讲解,例1 写一个程序完成下列功能: 输入 : 一个整数score 输出: 当 score60 输出 D 当60=score 70 输出 C 当70=score 90 输出 B 当90=score 输出 A,分析: score为整型数,利用两个整数相除,结果自动取整的特性,score和 score /10 有如下对应关系:,3 实例讲解,程序 #include main( ) int score; scanf(%d , ,不同情况执行相同的操作,4.典型错误,千万不要遗漏必要的break!
4、如: switch(score) case 5: printf(“very good ”); case 4: printf(“good ”); case 3: printf(“pass ”); case 2: printf(“fail ”); default: printf(“error”); 当输入5时,将输出: very good good pass fail error,5 注意事项,Switch 后跟整形, Case后面接常量, Default是可选项, 常量值须互不同。 只能判断值相等, 遇到break才中断。 Break常常很必要, 冒号小心别漏掉。,5 注意事项,第一、 Swit
5、ch 后跟整形。 switch ( 表达式)中,表达式值只能是整型和字符类型。包括: int,char, unsigned int,short,unsigned char,枚举类型(enum) 。 实型(浮点型)数就不行,如: float a = 0.123; switch(a) /错误!a不是整型或字符类型变量。 . ,第二、 Case后面接常量。 case之后可以是直接的常量数值,如例中的、,也可以是一个使用常量计算式,如+2等,但不能是变量或带有变量的表达式,如 a * 2等。不能是实型数,如4.1,或.0 / 2。 switch(formWay) case 2-1 : /正确 . ca
6、se a-2 : /错误 . case 2.0 : /错误 . 另外,在case与常量值之后,需要一个冒号,请注意不要疏忽。,第三、遇到break才中断,Break常常很必要。 break 使得程序在执行完选中的分支后,可以跳出整个switch语句;如果没有这个break,程序将在继续前进到下一分支,直到遇到后面的break或者switch完成。,第四、 Default是可选项。 default是可选中,前面我们已经说过它的用处,及如果没有default,程序在找不到匹配的case分支后,将在switch语句范围内不做什么事,直接完成switch。 第五、常量值须互不同。 每一个case的常量
7、值必须互不相同,否则就会出现同一个值有两种或多种执行方案。,第六、必要时,可在各个case中使用来明确产生独立的复合语句。 switch (formWay) case 1 : int a=2; /错误。由于case不明确的范围,编译器无法在此处定义一个变量。 . case 2 : . . 在这种情况下,加上可以解决问题,第七、只能判断值相等。 switch并不能代替所有的if.else.语句。这一点你应该知道了,因为前面已说过,它在对变量做判断时,只能对整型或字符型的变量做判断。另外,switch也只能做“值是否相等”的判断。你不能在case里写条件: switch (i) case (i = 32 & i=48) /错误! case里只能写变量的可能值,不能写条件。 . 在这种情况下,你只能通过 if.else来实现。,第八、各个case和default的出现次序不影响执行结果。但建议遵循以下准则: a) 按字母或数字顺序排列各条case 语句 b) 把正常情况放在前面,而把异常情况放在后面 c) 按执行频率排列case语句,总结,C语言的选择分支结构有 一元分支: if 二元分支 :if - else 嵌套分支: if - el
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026 年中职高铁乘务(高铁服务)试题及答案
- 火锅底料厂培训
- 中层管理培训班结业汇报
- 婚礼秀活动策划方案
- 中班幼儿安全常识
- 学前教育法解读培训课件
- 创意之光:年度履职全景呈现-黄色-东方美学
- 雨课堂学堂在线学堂云《牛病防治技术(锡林郭勒职业学院)》单元测试考核答案
- 双人工作制度
- 合唱室工作制度
- 江西省重点中学协作体2026届高三下学期第一次联考英语试卷(不含音频及听力原文答案不全)
- 太原铁路局集团招聘笔试题库2026
- 企业信息安全事件应急响应与处理手册
- 行业招聘面试问题清单专业能力测试版
- 广西机场管理集团秋招试题及答案
- 上交所2026校招笔试题
- 2026江西省港口集团有限公司第一批次社会招聘17人笔试备考试题及答案解析
- 车间内部转运车管理制度
- 2026年南阳农业职业学院单招职业技能考试题库及答案详解(各地真题)
- 城市更新改造类项目合作框架协议
- 麻醉门诊评估指南解读
评论
0/150
提交评论