- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第4章 选择结构程序设计4.1 条件的描述4.2 if选择结构4.3 条件运算4.4 switch多分支选择结构4.5 选择结构程序举例本章小结 4.1 条件的描述4.1.1 关系运算1.关系运算符C语言的关系运算符有:(小于)、=(小于等于)、(大于)、=(大于等于)、==(等于)、!=(不等于)在C语言中,约定以1(非0)表示真,以0表示假。由于C语言中没有逻辑型数据,因此C语言规定用整型数据来表示逻辑值,即用整数值1表示逻辑真,用整数值0表示逻辑假。在C语言中,将非0视为真。在上述6种关系运算符中前4种(、=、、=)的优先级高于后两种(==、!=)。另外,关系运算符的优先级低于算术运算符的优先级。 2.关系表达式关系表达式是由关系运算符将两个表达式连接起来的式子。一般格式为:表达式1 关系运算符 表达式2关系表达式的结果为1(真)或0(假)。设有i=1,j=2,k=3,则ij的值为0,i==kj的值为1(先计算kj,其值为1,等于i的值),i+j=k的值为1。 在表达式中连续使用关系运算符时,要注意正确表达运算的含义,注意运算优先级和结合性。例如,变量x的取值范围为0≤x≤20时,不能写成0=x=20,因为关系表达式0=x=20的运算过程是:按照优先级,先求出0=x的结果,再将结果1或0作=20的判断,这样无论x取何值,最后表达式一定成立,结果一定为1。这显然违背了原来的含义。此时,就要运用下面介绍的逻辑运算符进行连接,即应写为:x=0 x=20 4.1.2 逻辑运算1.逻辑运算符C语言的逻辑运算符有:(逻辑与)、||(逻辑或)、!(逻辑非)其中运算符 和 || 是双目运算符,要求有两个运算分量,用于连接多个条件,构成更复杂的条件。运算符 ! 是单目运算符,用于对给定条件取非。逻辑运算产生的结果也是一个逻辑量:真或假,分别用1或0表示。 逻辑运算符中, ! 的优先级最高,其次是 ,|| 的优先级最低。另外, 和 || 的优先级低于关系运算的优先级, ! 的优先级高于算术运算符的优先级。 2.逻辑表达式逻辑表达式是用逻辑运算符将逻辑量连接起来的式子。除!以外, 和 || 构成的逻辑表达式一般形式为:p1 逻辑运算符 p2其中p1,p2是两个逻辑量。 若逻辑运算符为 ,则当连接的两个逻辑量全为真时,逻辑表达式取值为真,只要有一个为假,便取假值。若逻辑运算符为 ||,则当连接的两个逻辑量中只要有一个为真,逻辑表达式的值为真,只有两个逻辑量同时为假时,才产生假值。 ! 是一个单目运算符,只作用于后面的一个逻辑量。它对后面的逻辑量取非,如果逻辑量为假,便产生真值,如果逻辑量为真,便产生假值。 由于在C语言中,以1(非0)表示逻辑真,0表示逻辑假,所以参与逻辑运算的分量也可以是其他类型的数据,以非0和0判定它们是真还是假。在一个包含算术、关系、逻辑运算的表达式中,不同位置上出现的数值,应区分哪些是数值运算对象、哪些是关系运算和逻辑运算对象。例如:21 4 73+!0 3.逻辑运算的重要规则逻辑与和逻辑或运算分别有如下性质:(1)a b:当a为0时,不管b为何值,结果为0。(2)a || b:当a为1时,不管b为何值,结果为1。 C语言利用上述性质,在计算连续的逻辑与运算时,若有运算分量的值为0,则不再计算后继的逻辑与运算分量,并以0作为逻辑与算式的结果;在计算连续的逻辑或运算时,若有运算分量的值为1,则不再计算后继的逻辑或运算分量,并以1作为逻辑或算式的结果。也就是说,对于a b,仅当a为非零时,才计算b;对于a || b,仅当a为0时,才计算b。 例如,有下面的定义语句和逻辑表达式:int a=0,b=10,c=0,d=0;ab(c=a+10,d=100)因为a为0,无论b(c=a+10,d=100)值为1或为0,表达式ab(c=a+10,d=100)值一定为0。所以,b(c=a+10,d=100)部分运算不需要计算。该表达式运算完成后,c和d值都不变,保持原值0。 又如:int a=5,b=10,c=0,d=0;ab-(c=b*b,d=a/b)表达式中的-(c=b*b,d=a/b)是第二个运算符的右操作数,若加上一对圆括号更清晰。所以,可写成:ab(-(c=b*b,d=a/b))因为a、b均为非0,该逻辑运算表达式值还不能确定,(-(c=b*b,d=a/b))需要计算。该表达式运算完成后,其值为0,c为100,d为0。 对于逻辑或运算,有下面的定义语句和逻辑表达式:int a=1,b=10,c=0,d=0;a||b||(c=a+10,d=100)因为a为非0,无论b||(c=a+1
文档评论(0)