分支结构、关系与逻辑运算

分支结构、关系与逻辑运算

ID:8997066

大小:189.00 KB

页数:12页

时间:2018-04-14

分支结构、关系与逻辑运算_第1页
分支结构、关系与逻辑运算_第2页
分支结构、关系与逻辑运算_第3页
分支结构、关系与逻辑运算_第4页
分支结构、关系与逻辑运算_第5页
资源描述:

《分支结构、关系与逻辑运算》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、靳润昭C语言教程讲义2001年2月17日5分支结构程序15.1关系运算符和表达式15.1.1关系运算符及其优先次序15.1.2关系表达式15.2逻辑运算符和表达式25.2.1逻辑运算符极其优先次序25.2.2逻辑运算的值35.2.3逻辑表达式35.3if语句45.3.1if语句的三种形式45.3.2if语句的嵌套75.3.3条件运算符和条件表达式95.4switch语句105.5程序举例115分支结构程序5.1关系运算符和表达式在程序中经常需要比较两个量的大小关系,以决定程序下一步的工作。比较两个量的运算符称为关系

2、运算符。5.1.1关系运算符及其优先次序在C语言中有以下关系运算符:1)<小于2)<=小于或等于3)>大于4)>=大于或等于5)==等于6)!=不等于关系运算符都是双目运算符,其结合性均为左结合。关系运算符的优先级低于算术运算符,高于赋值运算符。在六个关系运算符中,<,<=,>,>=的优先级相同,高于==和!=,==和!=的优先级相同。5.1.2关系表达式关系表达式的一般形式为:表达式关系运算符表达式例如:a+b>c-d第12页靳润昭C语言教程讲义2001年2月17日x>3/2‘a’+1

3、是合法的关系表达式。由于表达式也可以又是关系表达式。因此也允许出现嵌套的情况。例如:a>(b>c)a!=(c==d)等。关系表达式的值是真”和“假”,用“1”和“0”表示。如:5>0的值为“真”,即为1。(a=3)>(b=5)由于3>5不成立,故其值为假,即为0。【例5.1】main(){charc='k';inti=1,j=2,k=3;floatx=3e+5,y=0.85;printf("%d,%d",’a’+5=k+1);printf("%d,%d",1

4、y);printf("%d,%d",i+j+k==-2*j,k==j==i+5);}在本例中求出了各种关系运算符的值。字符变量是以它对应的ASCII码参与运算的。对于含多个关系运算符的表达式,如k==j==i+5,根据运算符的左结合性,先计算k==j,该式不成立,其值为0,再计算0==i+5,也不成立,故表达式值为0。5.1逻辑运算符和表达式5.1.1逻辑运算符极其优先次序C语言中提供了三种逻辑运算符:1)&&与运算2)

5、

6、或运算3)!非运算与运算符&&和或运算符

7、

8、均为双目运算符。具有左结合性。非运算符!为单

9、目运算符,具有右结合性。逻辑运算符和其它运算符优先级的关系可表示如下:!(非)→&&(与)→

10、

11、(或)第12页靳润昭C语言教程讲义2001年2月17日!(非)算术运算符关系运算符&&和

12、

13、赋值运算符“&&”和“

14、

15、”低于关系运算符,“!”高于算术运算符。按照运算符的优先顺序可以得出:a>b&&c>d等价于(a>b)&&(c>d)!b==c

16、

17、d

18、

19、(dc&&x+yc)&&((x+y)

20、1”和“0”来表示。其求值规则如下:1.与运算&&:参与运算的两个量都为真时,结果才为真,否则为假。例如:5>0&&4>2由于5>0为真,4>2也为真,相与的结果也为真。2.或运算

21、

22、:参与运算的两个量只要有一个为真,结果就为真。两个量都为假时,结果为假。例如:5>0

23、

24、5>8由于5>0为真,相或的结果也就为真。3.非运算!:参与运算量为真时,结果为假;参与运算量为假时,结果为真。例如:!(5>0)的结果为假。虽然C编译在给出逻辑运算值时,以“1”代表“真”,“0”代表“假”。但反过来在判断一个量是为“真”还是为“

25、假”时,以“0”代表“假”,以非“0”的数值作为“真”。例如:由于5和3均为非“0”因此5&&3的值为“真”,即为1。又如:5

26、

27、0的值为“真”,即为1。5.1.2逻辑表达式逻辑表达式的一般形式为:表达式逻辑运算符表达式其中的表达式可以又是逻辑表达式,从而组成了嵌套的情形。例如:(a&&b)&&c第12页靳润昭C语言教程讲义2001年2月17日根据逻辑运算符的左结合性,上式也可写为:a&&b&&c逻辑表达式的值是式中各种逻辑运算的最后值,以“1”和“0”分别代表“真”和“假”。【例5.2】main(){charc=

28、'k';inti=1,j=2,k=3;floatx=3e+5,y=0.85;printf("%d,%d",!x*!y,!!!x);printf("%d,%d",x

29、

30、i&&j-3,i

31、

32、i+j+k);}本例中!x和!y分别为0,!x*!y也为0,故其输出值为0。由

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。