资源描述:
《第4章 选择结构程序设计ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、C语言程序设计第4章选择结构程序设计案例教程C语言程序设计案例教程关系表达式和逻辑表达式C语言没有逻辑型数据,所以C语言采用非零值表示“真”,用零值表示“假”。C语言的用于表示条件的表达式有两个用处,一是用于判断,二是用于求值。这两种情况C语言的处理办法不太完全一样。C语言规定:当用于判断时,表达式为“0”,就代表“假”;为非“0”,就代表“真”。当用于求值时,“假”为0,“真”为1。关系表达式1.关系运算符关系表达式对应的就是两个量直接比较的简单条件,因此实现两个量比较的关系运算符共有6个。C语言程序设计案例教程关
2、系表达式和逻辑表达式(1)>:大于(2)>=:大于等于,与数学中的“≥”对应(3)<:小于(4)<=:小于等于,与数学中的“≤”对应(5)==:等于,注意是两个等号组成的(6)!=:不等于,与数学中的“≠”对应关系运算符的前4个(>、>=、<、<=)的优先级相同。后两个(==、!=)的优先级相同,并且低于前4个的优先级。6个关系运算符均具有自左向右的结合性。所有的关系运算符的优先级都低于算术运算符,而高于赋值运算符和逗号运算符。C语言程序设计案例教程关系表达式和逻辑表达式例如:c>a+b等价于c>(a+b)a>b!=
3、c等价于(a>b)!=ca==bc等价于a=(b>c)2.关系表达式由关系运算符将运算量连接起来的式子称为关系表达式。关系表达式的值是逻辑值“真”或“假”,用1和0表示。要想设计出正确的程序,正确理解关系表达式极为重要。表4.1给出了部分正确的关系表达式C语言程序设计案例教程关系表达式和逻辑表达式所涉及量的值关系表达式含义关系表达式的逻辑值C语言中的输出值设a=12,b=15,c=8a>ba大于b假0c<=bc小于等于b真1a!=ca不等于c真1例如:inta=3,b=2,c=1,d
4、,f;a>b/*表达式值1*/(a>b)==c/*表达式值1*/b+cb/*d=1*/C语言程序设计案例教程关系表达式和逻辑表达式逻辑表达式1.逻辑运算符逻辑表达式对应的是复杂条件,如在中学数学中的
5、x
6、<10对应的就是x>-10并且x<10,这个复合条件就需要用逻辑表达式表示。实现将多个条件连接起来的逻辑运算符有3个。(1)&&逻辑“与”(相当于数学上的并且AND)如:
7、x
8、<10在C语言中的表示为(x>-10)&&(x<10)或x>-10&&x<10(因&&的优先级低于关系运算符)。
9、(2)
10、
11、逻辑“或”(相当于数学上的或者OR)如:
12、x
13、>10在C语言中的表示为(x>10)
14、
15、(x<-10)或x>10
16、
17、x<-10(因
18、
19、的优先级低于关系运算符)。C语言程序设计案例教程(3)!逻辑“非”(相当于数学上的取反NOT)如:x不大于3在C语言中的表示为!(x>3)。此时x>3的那对圆括号不能缺省,因为!的优先级高于关系运算符。这3个逻辑运算符的优先次序是:!(逻辑非)最高,其次是&&(逻辑与),
20、
21、(逻辑或)最低。3个逻辑运算符均具有自左向右的结合性。关系表达式和逻辑表达式例如:a<=x&&x<=b/
22、*(a<=x)&&(x<=b)*/a>b&&x>y/*(a>b)&&(x>y)*/a==b
23、
24、x==y/*(a==b)
25、
26、(x==y)*/!a
27、
28、a>b/*(!a)
29、
30、(a>b)*/C语言程序设计案例教程关系表达式和逻辑表达式2.逻辑表达式由逻辑运算符将运算对象连接起来的式子称为逻辑表达式。所涉及量的值逻辑表达式含义逻辑表达式的逻辑值C语言中的输出值设a=12,b=15,c=8a>=12&&b<=16a大于等于12,并且b小于等于16真1a!=12
31、
32、c>3a不等于12或c大于3真1!(b>a)b不大于a假0C语言程
33、序设计案例教程关系表达式和逻辑表达式例如a=4;b=5;/*值为0*/!a/*值为1*/a&&b/*值为1*/a
34、
35、b/*值为1*/!a
36、
37、b/*值为1*/4&&0
38、
39、2/*(5>3)&&2
40、
41、(8<(4-(!0)))值为1*/5>3&&2
42、
43、8<4-!0/*值为1*/'c'&&'d'/*值为1*/C语言程序设计案例教程关系表达式和逻辑表达式为了提高逻辑表达式的运算效率,其&&(逻辑与)和
44、
45、(逻辑或)在运算中有一些特殊现象:(1)&&(逻辑与)的特殊性C语言在计算“表达式1&&表达式2”的值时,若“表达式1”的值为
46、“假”,将不计算“表达式2”的值。例如:①假设a=3,b=7,则经过逻辑运算(a-3)&&++b后,由于a-3为0即为“假”,所以系统不再计算++b。②a&&b&&c只在a为真时,才判别b的值;只在a、b都为真时,才判别c的值C语言程序设计案例教程关系表达式和逻辑表达式(2)
47、
48、(逻辑或)的特性C语言在计算“表达式1
49、
50、表达式2”的值时,若“表