六C语言程序设计选择结构一.ppt

上传人:本田雅阁 文档编号:3172817 上传时间:2019-07-20 格式:PPT 页数:29 大小:3.19MB
返回 下载 相关 举报
六C语言程序设计选择结构一.ppt_第1页
第1页 / 共29页
六C语言程序设计选择结构一.ppt_第2页
第2页 / 共29页
六C语言程序设计选择结构一.ppt_第3页
第3页 / 共29页
六C语言程序设计选择结构一.ppt_第4页
第4页 / 共29页
六C语言程序设计选择结构一.ppt_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《六C语言程序设计选择结构一.ppt》由会员分享,可在线阅读,更多相关《六C语言程序设计选择结构一.ppt(29页珍藏版)》请在三一文库上搜索。

1、第四章 选择结构,该章的学习内容,学点什么哪?,熟练掌握用C语言的基本控制语句进行顺序、选择程序设计的方法;,选择结构,4.1.选择结构的应用场合 4.2.关系运算符和关系表达式 4.3.逻辑运算符和逻辑表达式 3.4.*选择结构的流程图表示 3.5.条件语句 3.6.开关语句,选择结构的应用场合,当我们不知向何处走时,会抬头 看看路牌,当某个方向满足了我们的 要求,则会走去。在程序设计中当某 条件成立,执行某段程序;不成立, 执行另一段程序。此时,即为选择结 构,可使用 if 或 switch 语句完成 该功能。例如:,关系运算符,C的关系运算符,数学中的关系符,含义, 大于,= 大于或等于

2、, 小于,= 小于或等于,= = 等于,!= 不等于,注意:关系运算符中的相等用“=”表示 不要与赋值号“=”混淆!,关系运算的运算规则(1),1.关系运算符的优先顺序为、=、= 相同,= =、!=相同,前组优先于后组。,2.关系表达式成立, 则结果为1, 即为真值;否则为0,即为假值。,举例:185 918 48188,18,0,1,0,关系运算的运算规则(2),3.关系运算的操作数可为算术表达式。,4.关系运算符的优先级低于算术运算符的优先级。,举例:2*510-7,103,0,关系运算的运算规则,5. 表面看起来合法的关系表达式,在逻辑上并不一定是正确的。,举例:当a=3;b=2; c=

3、1时 abc?,321,11,0,逻辑运算符,逻辑运算符,& 逻辑与(并且) | 逻辑或(或者) ! 逻辑非,逻辑运算的运算规则(1),1.只有在两个操作数都为真时,逻辑与的 结果为真,否则为假。,2.只有在两个操作数都为假时,逻辑或的 结果为假,否则为真。,3.逻辑非为一元运算, 真变假, 而假变真。,4.用逻辑运算符连接的两个逻辑量, 构成的式子称为逻辑表达式。,逻辑运算的运算规则(2),举例:a+bc*d & L1 & !L2,7.C语言没有提供“逻辑型”或“布尔型”等数据类型。只要合法,任何类型表达式都可作为判断条件,可作逻辑量使用,表达式值为非0,即为真值,0为假!,举例:当a=3时

4、 a+1为真值;a-3为假值。,逻辑运算的运算规则(3),逻辑表达式举例,判断某一年year是否是闰年。,能被4整除,但不能被100整除;或能被400整除;,year%4= =0&year%100!=0,或year%400= =0,(year%4= =0&year%100!=0)|(year%400= =0),单选择结构的框图结构,yes,no,语句A,入口,出口,双选择结构的框图结构,yes,no,程序段A,程序段B,入口,出口,双向选择分支结构N-S图,选择条件语句,IF选择条件语句,IF语句的说明,if-else 选择条件语句,选择结构的一种最常用形式: if (表达式) 语句1; el

5、se 语句2; 语句3 执行过程: 当括号内表达式成立时,即表达式的值是非0时,执行语句1,然后语句3; 当表达式不成立时,值等于0时,执行语句2,然后语句3,上面else部分也可以没有。,条件语句举例-1,从键盘上输入两个整数a和b,输出大的 数。,(a=b),ab成立,执行,ab不成立,执行,if-else 选择条件语句,if (表达式) 语句1; 语句3 执行过程: 当括号内表达式成立时(表达式的值是非0 ) ,执行语句1,然后执行语句3; 当表达式不成立时(等于0 ),直接执行语句3。,条件语句举例-2,t=a; a=b; b=t;,输入两个整数,按从小到大的顺序 输出它们。,条件语句

6、举例-3,#include main( ) int a, b, c, t; scanf(“%d, %d, %d“, ,t=a; a=b; b=t;,t=a; a=c; c=t;,t=b; b=c; c=t;,输入三个整数,按从小到大的顺序 输出它们。,if-else 多选条件语句,if的一种扩展形式格式: if (表达式1) 语句1; else if (表达式2) 语句2; else if (表达式3) 语句3; else 语句4; 语句5;,#include main( ) int x, y; scanf(“%d“, ,条件语句举例-4,#include main( ) int x, y;

7、scanf(“%d“, ,if语句的说明,1.表达式既可以是关系表达式、逻辑表达式,也 可以是数值类型表达式。当为0时,为假值; 非0为真值。,2.关系运算符= = 不能写成赋值运算符=。,3.在if 语句和else语句中若有多个操作语句,则应 用花括号 和 将它们括起成为一个复合语句。,开关语句就像多路开关一样,程序可根据 一个表达式可能产生的不同结果值,选择其中 一个独立分支结构,或几个分支 的语句非独立分支结构去执行。,有了if 语句,为什么还要switch语句?,switch后括号内表达式的值只能是整形、字符型或枚举类型,每个常量的类型和表达式的类型应相同,每个语句序列可以是零个或若干

8、个语句。 case 3: case 4: printf(“%d”, d1); break; default:,执行时,先求表达式的值,然后自上而下依次测试每一个常量,若与常量I相匹配,则从其后的语句序列i开始执行每个语句序列,若没有常量与之匹配,则执行default后面的语句序列非独立分支结构。 若只执行语句系列I,则在语句系列I后加break语句独立分支结构。,switch (表达式) case 常量1 : 语句系列1;break; case 常量2 : 语句系列2;break; case 常量m : 语句系列m;break; default : 语句系列m+1; ,由于每个case语句后的

9、常量只起语句标号的作用,所以它们的值必须互不相同,否则会出现互相矛盾的现象(C语言系统不允许,编译出错)。 case 1: case 1: case 3:,switch (表达式) case 常量1 : 语句系列1 case 常量2 : 语句系列2 case 常量m : 语句系列m default : 语句系列m+1 ,独立分支时每个case语句和default语句的出现的前后次序发生改变时,不影响运行结果,但在一般情况下,常量出现频率较高的放在前面。 case 1: case 1: default: case 2: case 2: case 3: case 3: deault:,开关语句-s

10、witch,功能,格式,说明,举例,开关语句举例,独立分支开关语句举例 非独立分支开关语句举例,独立分支开关语句举例,#include main() int x scanf(“%d“, ,x/10,非独立分支开关语句举例,设有语句:int a=1,b=0;则执行下面语句后输出为( ) switch(a) case 1 : switch(b): case 0 : printf(“*0*”);break; case 1 :printf(“*1*”);break; case 2 : printf(“*2*”);break; ,A. *0* B.*0*2* C.*0*1*2* D.错误,B.*0*2*,B,

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

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1