c语言选择结构讲解课件.ppt

上传人:小飞机 文档编号:1804093 上传时间:2022-12-19 格式:PPT 页数:42 大小:791KB
返回 下载 相关 举报
c语言选择结构讲解课件.ppt_第1页
第1页 / 共42页
c语言选择结构讲解课件.ppt_第2页
第2页 / 共42页
c语言选择结构讲解课件.ppt_第3页
第3页 / 共42页
c语言选择结构讲解课件.ppt_第4页
第4页 / 共42页
c语言选择结构讲解课件.ppt_第5页
第5页 / 共42页
点击查看更多>>
资源描述

《c语言选择结构讲解课件.ppt》由会员分享,可在线阅读,更多相关《c语言选择结构讲解课件.ppt(42页珍藏版)》请在三一办公上搜索。

1、1,选择结构程序设计,2,一、 什么叫“选择”二、 在C中选择结构的表现形式三、 “关系运算”与“逻辑运算”四、 选择结构的使用实例五、 总结、疑问、常见错误,主要内容,3,从小学时代:语文课的造句练习: 如果就英语学习中单词: if then ,一、什么叫“选择”,4,生活中的“选择”体育课排队中位置的选择 第一次排队 来了新人的排队大学的选择: 高考分数、学校知名度、兴趣、就业前景、 风险:招生数量、竞争人数、,5,生活中的“选择”道路上的选择 道口分类:三岔口、十字路口、五道口、N道口 选择的依据?目的地、道路、畅通性,6,讲座 选择结构程序设计,生活中的“选择”领导要求:明天上午10点

2、钟到北京清华大学参加会议,后天回校参加选举会。你怎么办?交通工具的选择:飞机、火车、汽车,7,讲座 选择结构程序设计,总结: 依据某些条件实现(达到)某个目标的情况处理称为选择。 因此首先必须知道“条件”,然后是使用适当的处理方式。 选择的必要条件:“条件”,8,讲座 选择结构程序设计,在C中选择结构的表现形式,一般称为 if 语句 switch 语句可以从不同的角度去观察分析这两个语句。,二、在C中“选择结构”的表现形式,9,讲座 选择结构程序设计,1 从词义看: if 语句 switch 语句,10,选择结构,单分支,双分支,if (表达式) 语句,多分支,if (表达式) 语句else

3、语句,if (表达式1) 语句else if (表达式) 语句else 语句n,if 语句的嵌套,switch 语句,讲座 选择结构程序设计,2 从分支看分为三种分支,11,if (表达式) 语句,switch (表达式) case : . ,讲座 选择结构程序设计,3 从一般形式的角度分两种,基本结构 : 选择标识符 (表达式) 语句,你注意到与前面第一部分的介绍有什么不同吗?,(表达式),12,讲座 选择结构程序设计,关于表达式的定义,表达式由运算符、常量及变量构成。,C语言的表达式基本遵循一般代数规则。 虽然进一步细分,又分为算术表达式、关系表达式、赋值表达式, 有几点却是与C语言紧密相

4、关的需要注意。 1. 类型转换 2. 复合运算的使用,13,讲座 选择结构程序设计,根据给定的条件判断决定要执行的操作。,单选择,语句格式:if (表达式) 语句;例: if (ab) x=a;,if 语句的使用。,14,举例,讲座 选择结构程序设计,#include void main()float a,b,t=0; scanf(“%f,%f”,3,4,if (ab) t=a; a=b; b=t;,3.00, 4.00,当某些语句作为一个整体出现的时候,必须是复合语句的形式。,15,讲座 选择结构程序设计,if 语句中对于表达式的要求,1. 对表达式的类型没有任何要求 2. 使用的是表达式的

5、结果值 3. 这个结果值若非0,则都作为“真”处理。 4. 针对上一条,对float类型的结果要格外注意。,16,讲座 选择结构程序设计,switch 语句的使用。,格式:switch(表达式) case 常量表达式:语句序列; case 常量表达式:语句序列; case 常量表达式n: 语句序列n; default :语句序列n+1; ,17,讲座 选择结构程序设计,switch 语句中注意的问题,1. 规则上对表达式的类型没有任何要求,但实际使用中一般采用结果为整形或字符型的表达式,或者是与常量表达式类型一致的表达式. 2. 使用的是表达式的结果值与常量表达式“等于”的比较结果。 3. 要

6、注意case的执行顺序的影响。,18,讲座 选择结构程序设计,在班级排队中排队的依据是“相互之间身高”的差异;在三角形构成判定定理中要求“任意两边之和大于第三边”;因此两个对象(量)之间不仅可以实施算术运算,还存在一定的“关系”。小学时就知道:ab是否成立要看具体值。在C语言中称之为关系运算。,三、“关系运算”与“逻辑运算”,19,运算定义、运算符号、运算对象,讲座 选择结构程序设计,这些运算相互之间的优先级,与其它运算组合时的优先级,运算结果值、如何使用这个结果,关心什么?,20,关系运算符, = = != (6种),讲座 选择结构程序设计,优先级,赋值 关系( 后2前4 ) 算术,关系表达

7、式,用关系运算符将两个表达式连接起来的式子.,算术、关系、逻辑、赋值、字符。,值(结果),真(1) 假(0),举例,已知: (a=3、b=2、 c=1、 d=0),0,a=bc,d=ab+c,1,53 ?,d=ab+c?,关系运算符和关系表达式,21,讲座 选择结构程序设计,关系运算是表述对象之间的关系是否成立,在给出具体值必然有一个确定的、唯一的结果:要么成立、要么不成立。上升到理论高度,将这了结果称为逻辑值:“真”、“假”。看一下造句题:如果a来了并且b也来了,才能打开门。如果a来了或者b也来了,都能打开门。以上两个问题引入了一个新的运算:逻辑运算。,22,逻辑运算符,!(逻辑非) &(逻

8、辑与) |(逻辑或),运算规则,优先次序,赋值 | & 关系算术 !,讲座 选择结构程序设计,(1) !: 取逻辑值的相反值。(2) &: 参加运算的两个逻辑值都为真时,结果为真(1)。(3) |: 参加运算的两个逻辑值都为假时,结果为假(0)。,逻辑表达式,用逻辑运算符将关系表达式和逻辑量连接起来的式子。,举例,已知: (a= b=),1,a | b & 0,! a & (53) | b,0,逻辑运算符和逻辑表达式,23,讲座 选择结构程序设计,举例,53 & 8 4- !0,0,(53) & (8 (4- !0),4 & 53 | 2,1,逻辑运算符两侧的运算对象不但可以是和,也可以是或非

9、的整数,也可是任何类型的数据。系统判定标准:为假;非为真。,24,讲座 选择结构程序设计,解决实际问题的步骤 1. 分析已知条件、解决分步 2. 根据问题决定使用什么结构、语句 3. 编写源程序(代码) 4. 调试:排出语法错误,用已知初始数据和结果排出语义错误。 5. 实际使用:用真实数据运行程序。,四、选择结构的应用实例,25,思考,按照从小到大的顺序输出数据,讲座 选择结构程序设计,#include void main()float a,b,t=0; scanf(“%f%f”,针对要求选择单分支结构即可。,单分支,要求,编成,采用固定输出模式是,已经符合如何处理,不符合时如何处理。,26

10、,要求,讲座 选择结构程序设计,#include void main() float a,b,c,p,s; scanf(“%f,%f,%f”,如何判断是三角形的三边?如何求三角形的面积。,3,4,5s= 6.00,3,4,8Not a triangle!,双分支,分析,输入三角形的三边,求三角形的面积。,27,格式,举例,讲座 选择结构程序设计,if (cost3000) cash=500;else if (cost2000) cash=300; else if (cost1500) cash=200;else if (cost1000) cash=100;else cash=0;,if (表

11、达式1) 语句else if (表达式) 语句else 语句n,语句本身含分号,多分支(一),28,if语句的嵌套,讲座 选择结构程序设计,在if语句中又包含一个或多个if语句。,被嵌套的条件语句和嵌套进去的条件语句既可是单分支,也可是双分支。,if (表达式)if (表达式) 语句else 语句else if (表达式3) 语句3else 语句4,注意,if与else的配对原则:else总是与它上面的最近的未配对的if配对。,分析方法,1、主句是单分支还是双分支的。2、嵌套进来的子句是双分支还是单分支的,嵌套在if后面还是else后面。,多分支(二),29,开关语句,讲座 选择结构程序设计,

12、switch (表达式) case 常量表达式1:语句1 case 常量表达式2:语句2 case 常量表达式3:语句3 case 常量表达式n:语句n default: 语句n+1,当分支较多时,使用嵌套的if语句层数多,程序冗长而且可读性降低。此时可以考虑使用switch语句(开关语句)来处理多分支。,多分支(三),30,举例,#include void main() char grade; printf(“请输入考试等级AD:”); scanf(“%c”, ,B7079606960Error,根据输入的考试成绩等级打印出百分制分数段。A: 80100 B: 7079 C: 6069 D:

13、 60,说明:应在每一个printf后加break语句,讲座 选择结构程序设计,31,完善后,#include void main() char grade; printf(“请输入考试等级AD:”); scanf(“%c”, ,B7079,最后一行的break可以省略。,讲座 选择结构程序设计,32,问题,#include void main() int score; printf(“请输入考试成绩0100:”); scanf(“%c”, ,根据输入的考试成绩(百分制整数)打印出等级水平。(使用switch语句实现)A: 80100 B: 7079 C: 6069 D: 60,思考:本程序有

14、问题么?,理想中,讲座 选择结构程序设计,思考,使用什么结构来解决问题?,33,#include void main() int score, p; printf(“请输入考试成绩0100:”); scanf(“%c”, ,改进程序1,11种情况,思考:不同case值时执行相同的操作,是否可以合并?,讲座 选择结构程序设计,34,#include void main() int score, p; printf(“请输入考试成绩0100:”); scanf(“%c”, ,改进程序2,注意:多个case共用一组执行语句时,共用的执行语句写在最后一个case的后面。,讲座 选择结构程序设计,35,

15、问题,输入一年号,判断这一年是否为闰年.,讲座 选择结构程序设计,分析,当给出数学表达式后,如何转化为程序.,参考,N-S图是结构化程序设计中常用的方法,,36,参考程序,讲座 选择结构程序设计,#include void main() int year,leap; scanf(%d,运行情况如下:输入:1800输出:1800 is not a leap year输入:2000输出:2000 is a leap year输入:1996输出:1996 is a leap year,条件可否合并写成一行呢?,37,改进程序,讲座章 选择结构程序设计,#include void main() int

16、 year,leap; scanf(%d,38,讲座 选择结构程序设计,总结,前面所用的例子基本上都取自教材中,这里只是重新梳理分析。,选择结构有两种基本形式,但是能组合出多种变化; 表达式不仅有算数表达式、还有关系、逻辑、条件(?)、逗号、赋值,等等。 表达式的使用要特别注意优先级的影响。 在VC中“逻辑与”的表达式当求解到“假”时,后面的不再计算。,39,讲座 选择结构程序设计,问题?,能看懂程序,但是自己对立写不出来; 模仿是学习的必要阶段,但只是初级阶段。 只有亲自动手才能熟悉;经验需要自己总结。如何设计程序的结构? 如果让你做一道菜,你怎么完成? 再复杂的机械,也是由简单部分构成的,

17、能把所有完成的任务分解成一步一步的,你就会写程序了。 如何验证程序的正确与否? 你会验证一个公式的正确性,就会验证程序的正确性,原理一样、方法多种。,40,讲座 选择结构程序设计,4. 复杂的表达式如何简单化? 加入圆括号,明显地表示出结构关系; 充分利用优先级的影响。5. 如何快速的排除错误? 先排除头三个错误;鼠标点击提示后,光标到错误所在的行,90%的错误在本行。 6. 语法错误与语义错误是两个概念 要求计算a+b,程序中写成a-b,计算机不会知道这个错误。,41,讲座 选择结构程序设计,常见错误 记住:有错不可怕,只怕不知道。,“=”与“=”的区别? 在C语言中,“=”是关系运算符,易犯得错误是 if (a=b) then c=a;2. 没有使用复合语句? 记住一点:凡是需要两条或多条语句完成的工作一定用花括号表示出来;3. 嵌套关系错误 如果你能用N-S图画出流程,就不会犯这类错误。 建议采用缩进格式(VC中基本自动缩进了)写程序;4. 缺少break语句 对case的执行流程没有记住导致的。,42,讲座 选择结构程序设计,谢谢,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号