- 1、本文档共76页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章 选择结构程序设计 4.1 关系运算符及其表达式 4.2 逻辑运算符及其表达式 4.3 条件运算符 4.4 单条件选择if语句 4.5 开关分支switch语句 习题4 4.1 关系运算符及其表达式 关系表达式是由关系运算符连接表达式构成的。 1. 关系运算符 1) 关系运算符 关系运算符都是双目运算符,共有如下6种: ,,=,=,==,!= 分别是大于、小于、大于或等于、小于或等于、等于和不等于。 2) 运算符的优先级和结合性 前4种关系运算符的优先级别相同,后2种也相同,前4种高于后2种。关系运算符具有自左至右的结合性。 关系运算符、算术运算符和赋值运算符之间的优先级次序为:算术运算符优先级最高,关系运算符次之,赋值运算符最低。 2. 关系表达式 1) 关系表达式 由关系运算符组成的表达式称为关系表达式。 关系运算符两边的运算对象可以是C语言中任意合法的表达式。例如,xy,(x=5)=y,x==y等。 2) 关系表达式的值 关系表达式的值是整数0(代表结果为逻辑假)或1(代表结果为逻辑真),在C语言中不存在专门的“逻辑值”,此处请读者务必清楚。例如,关系表达式(x=3)(y=4)的值为0。 关系表达式常用在条件语句和循环语句中。 3) 举例 一般情况下,关系表达式用在选择结构或循环结构的关系判断中,并不需要输出关系表达式的值,这里我们为了了解关系表达式的内部运行机制,在例4-1中可以看到关系表达式的值只能是0或1。 【例4-1】关系表达式示例。 #include stdio.h main( ) { char x=m , y=n ; int n ; n=xy ; printf(%d\n , n) ; n=x==y-1 ; printf(%d\n , n) ; n=(y!=Y)+(53)+(y-x==1) ; printf(%d\n , n) ; } 运行结果: 1 1 2 通过上面的程序可以看出:关系运算的结果为“真”时,值等于1;结果为“假”时,值等于0。 4.2 逻辑运算符及其表达式 逻辑表达式是由逻辑运算符连接表达式构成的。 1. 逻辑运算符 1) 逻辑运算符 C语言中提供了3种逻辑运算符。 (1) 单目逻辑运算符:! (逻辑非)。 (2) 双目逻辑运算符: (逻辑与)。 (3) 双目逻辑运算符:|| (逻辑或)。 2) 优先级和结合性 逻辑与“”的优先级大于逻辑或“||”,它们的优先级都小于逻辑非“!”。逻辑运算符具有自左至右的结合性。 逻辑运算符、赋值运算符、算术运算符、关系运算符之间优先级的次序由高到低为! (逻辑非)、算术运算符、关系运算符、 (逻辑与)、|| (逻辑或)、赋值运算符。 2. 逻辑表达式 1) 逻辑表达式 由逻辑运算符组成的表达式称为逻辑表达式。逻辑运算符两边的运算对象可以是C语言中任意合法的表达式。 2) 逻辑表达式的值 逻辑表达式的值为1(结果为“真”时)和0(结果为“假”时)。 3) 逻辑运算规则 表达式a和表达式b进行逻辑运算时,其运算规则见表4-1。 例如: ch=A ch=Z /* ch是大写字母时,表达式值为1,否则为0 */ (year%4==0 year%100!=0) || year%400==0 /* year为闰年时,表达式值为1,否则为0 */ 3. 短路表达式 在由 和 || 运算符组成的逻辑表达式中,C语言规定:只对能够确定整个表达式值所需要的最少数目的子表达式进行计算。也就是说,当计算出一个子表达式的值之后便可确定整个逻辑表达式的值时,后面的子表达式就不需要再计算了,整个表达式的值就是该子表达式的值。这种表达式也称为短路表达式。 【例4-2】执行语句: int a=3 , b=0 ; 问下面表达式运算后,a和b的值是多少? (1) !a a+b a++ (2) !a || a++ || b++ 分析: (1) 第一个表达式是一个由组成的逻辑表达式,从左至右计算3个子表达式,只要有一个为0,就不再计算其他子表达式。当计算!a的值为0时,便可确定整个表达式的值为0,因此后面的子表达式就不再计算了。所以,结果a的值为3,b的值为0。 (2) 第二个表达式是一
文档评论(0)