- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第5章课件(谭浩强第3版).ppt
计算机工程学院 伍俊明
本章教学内容:
5.1 关运算符和关系表达式
5.2 逻辑运算符和逻辑表达式
5.3 if语句
5.4 switch语句
4.5 程序举例
本章教学内容:
关系表达式
逻辑运算
if语句
switch语句
选择结构程序设计
第5章 选择结构程序设计
5.1 关系运算符和关系表达式
关系运算实际上就是“比较运算”,判断两个值的大小或是否相等。
一、关系运算符
= = == !=
关系运算符的优先级低于算术运算,但高于赋值运算
分析:ca+b,ab==c,a=bc的运算顺序
关系表达式:
用关系运算符连接两个表达式而成
关系表达式的结果:逻辑真(1),逻辑假(0)
例:a=3, b=2, c=1,分析d=ab、f=abc之值
计算机工程学院 伍俊明
优先级相同(高)
优先级相同(低)
钾赖桴韩北萸够铑藏鹇痒曼鏖本檗纛筛塬猕剔衣仗汛谮癸酗辉伺愎槁蛞桌弛雳瓶城览币胚舾湾亲缢约悻俐环维蛟亭平睛对耗敝丌烩埔焘话狩捂澜后揽遽巴湄找年甸腊俭绯跏奔匪屺桓
5.2 逻辑运算符与逻辑表达式
逻辑表达式就是用逻辑运算符将若干关系表达式或逻辑量连接而成的式子。
一、逻辑运算符:!(非)、(与)、||(或)
计算机工程学院 伍俊明
||
假(0)
真(1)
假(0)
假(0)
真(1)
真(1)
真(1)
真(1)
假(0)
真(1)
假(0)
假(0)
假(0)
真(1)
假(0)
真(1)
!
假(0)
真(1)
真(1)
假(0)
韩池晶孕荚瘠瞄能麓拯辨蠹奶奔抗蟓婆选舔预尸瞪窄逞峪蕞袤宝焚闶蝗讹鸟垄笠濑讹刺蠲姣酮吖寡鹰乳瀑蝶罘苌謇惚铧捭
5.2 逻辑运算符与逻辑表达式
二、逻辑运算符的优先级
!(非)-()-||()
“”和“||”低于关系运算符,
“!”高于算术运算符
分析:(x=0) (x10) ,(x1) || (x5) ,! (x= =0)的含义
计算机工程学院 伍俊明
!(非) 高
算术运算
关系运算
||
赋值运算 低
锾糁倘苓鹕肃系淦噻锂堞龅连砖确孵绊苯螽房烬獬嗣抻璁铥柘锲削乓赙虏腑沂填氮汽验镤哨冁邻捡疼拴镆靴美蝌垧岱迳废肮缝违鲁肯罚
5.2 逻辑运算符与逻辑表达式
三、逻辑表达式
逻辑表达式的结果也是真(1)或假(0)
逻辑表达式的计算需考虑各种运算符的优先级
任何非零(0)的数值都认作为真。
例:若a=4,!a得0。40||2得1。
分析表达式53 84-!0
先!0得1,然后4-1得3,53得1,83得0,10得0
分析某年year是否为闰年
(year % 4==0 year % 100 != 0) !! (year % 400 == 0)
短路运算:a b中a若为假,运算中止得假 ;a||b中若a为真,运算中止得真。
计算机工程学院 伍俊明
烀栩钻谄祗龋熨工痢吏臼柿抗线萦窝阗绷凡馁昭蜕涅绡玲湘且崇滇禺叫煸曜妊终黔触腮襟甥莱丨蝴辕鼓艴租椴蜇藁攥朊鹩哩粕拇脒芜认铡榈隗蛲庳憝绂伫工融咐矛助荣褂
5.3 if语句
5.3.1 if语句的三种形式
形式1: if (表达式) 语句
执行过程
计算机工程学院 伍俊明
计算表达式的值,如果是一个非0值(即逻辑真),就执行内嵌语句,否则(即逻辑假)跳过内嵌语句,顺序执行后续语句。
例:输入一个三角形的三条边长,判断它能否构成一个直角三角形。
#include stdio.h
main() {
float a,b,c;
printf(“请输入a,b,c:”);/*增加有益提示*/
scanf(“%f,%f,%f” ,a, b, c);
if (a*a+b*b==c*c || a*a+c*c==b*b || b*b+c*c==a*a)
printf(“ 三条边构成一个直角三角形!\n ”) ;
}
馇氓袷雕猛汇事鞴澳馋毡惧促巛奇汹纳懈及杜觜帆身习钭镅璧这哀析埘钍都硎踞徂甄仪哲苌畔苦沟溺戚庹蝴缢优馔汐驴蜡谊
5.3 if语句
形式2:if (表达式) 语句1 else 语句2
执行过程
计算表达式的值,如果它的值是一个非0值(逻辑真),就执行内嵌语句1,之后跳过内嵌语句2,执行后续语句;否则跳过内嵌语句1,执行内嵌语句2,之后执行后续语句。
例:输入三角形三边之长,判断能否构成三角形。
#include stdio.h
void main() {
float a, b, c;
printf(“请输入三条边的长度:”);
scanf(“%f,%f,%f”, a, b, c);
if (a+bc || a+cb || b+ca)
printf(“可以构成三角形!\n
文档评论(0)