- 1、本文档共40页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第03章_选择结构程序设计
第3章 选择结构程序设计
选择结构程序设计,要解决两个问题:
(1)选择条件如何表示:关系/逻辑表达式
(2)实现选择结构语句: if、switch语句
if( ) ~ else ~
switch( ) ~
内容:
一 关系运算及其表达式
二 逻辑运算及其表达式
三 if语句
四 switch语句
五 选择结构程序设计
一 关系运算及其表达式
关系运算——将两个数据进行比较,判定是否符合给定的关系。
例如,“a b”中的“”,表示一个大于关系:
●如果a=5、b=3,则大于关系成立;
●如果a=2、b=3,则大于关系不成立。
6个关系运算符
(小于), =(小于等于), (大于), =(大于等于)
==(等于), !=(不等于)
算术运算符 → 关系运算符 → 赋值运算符
ab+c a(b+c)
a= =bc a==(bc)
a=bc a=(bc)
思考:在混合运算时,如何增强程序可读性(明确运算的优先关系)?
一 关系运算及其表达式
关系表达式
1.概念——用关系运算符,将两个表达式连接起来的式子。
例如:a b,a = b ,a + b c - d
2.关系表达式的值——逻辑真 / 逻辑假
●如果关系成立,则表达式的值为逻辑真;
●如果关系不成立,则表达式的值为逻辑假。
C语言没有逻辑型数据,用整数1表示“逻辑真”,用整数0表示“逻辑假”。
假设num1=3,num2=4,num3=5,则:
(1) num1 num2
(2) (num1 num2) != num3
(3) num1 num2 num3
二 逻辑运算及其表达式
关系表达式只能描述单一条件。如果需要同时描述多个条件时,就要借助于逻辑表达式。
逻辑运算符
:逻辑与(相当于“同时”)
|| :逻辑或(相当于“或者”)
! :逻辑非(相当于“否定”)
! && ||
例如:(x=0) (x10) ,(x1) || (x5) ,! (x= =0),
(year%4= =0) (year%100!=0) | | (year%400= =0)
二 逻辑运算及其表达式
注:
(1)在C语言中逻辑表达式的值只有1或0两种值。其中,1表示’真”,0表示“假“
逻辑”与”和“或”运算表
a b ab a||b
0 0 0 0
1 0 0 1
0 1 0 1
1 1 1 1
“非”运算表
a !a
0 1
1 0
&&:同时为真才为真,否则为假。
||:同时为假才为假,否则为真。
!:取反。
二 逻辑运算及其表达式
注:
(2)在C语言中可以用一个非零值代表“真”,用0代表“假”。但关系运算和逻辑运算结果中只能用1表示“真”,用0表示“假”。如:
例1、若有定义语句int a=5;则表达式a=10的值是什么?
表达式的值:
例2、若有定义语句int a=5;则下列表达式的值是什么?
a++5
++a5
例3、如何表达:num1 num2 num3
二 逻辑运算及其表达式
注:
(3)在求解逻辑与表达式(&&)时,若&&运算符左边表达式的值为0(假)则不再进行&&右边表达式的运算,且得到&&表达式的值为0;在求解逻辑或表达(||)时,若||左边表达式的值为非0值(真)则不再进行||运算符右边表达式的值,且得到||表达式的值1。这种现象叫做“短路”。即只有在必须执行逻辑运算符右边表达式才能得到整个逻辑表达式的值时,才进行右边表达式的运算。
如:i=1,j=1,k=1,问表达式:(i--||++j)++k计算后i,j,k后的值?
如:假设n1、n2、n3、n4、x、y的值分别为1、2、3、4、1、1,求解表达式“(x = n1 n2) (y = n3 n4)”后,x、y的值=?
三、if语句
[例1] 输入3个整数num1、num2、num3,求最大值。
算法设计要点:
(1) 任取一个数预置为max(最大值);
(2) 用其余的数num依次与max比较:如果num max,则max ← num 。
比较完所有的数后,max中的数就是最大值。
[例2]编写一程序, 判断一个年份year(4位十进制数)是否闰年。
闰年的条件是:能被4整除、但不能被100整除,或者能被400整除。
算法设计要点:
(1)如果X能被Y整除,则余数为0,即如果X % Y
文档评论(0)