欢迎来到天天文库
浏览记录
ID:51999493
大小:456.00 KB
页数:65页
时间:2020-03-27
《逻辑运算及判断选取控制.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第四章逻辑运算和判断选取控制4.1关系运算符和关系表达式关系运算是逻辑运算中比较简单的一种。所谓“关系运算”实际上是“比较运算”。将两个值进行比较,判断比较的结果是否符合给定的条件。例如,a>3是一个关系表达式,大于号(>)是一个关系运算符4.1.1关系运算符及其优先次序C语言提供6种关系运算符:(1)<(小于)(2)<=(小于或等于)(3)>(大于)(4)>=(大于或等于)(5)==(等于)(6)!=(不等于)关于优先次序:1.前4种关系运算符(<,<=,>,>=)的优先级别相同,后两种也相同。前4种高于后2种。2.关系运算符的优先级低于算术运算符。3.关系运算
2、符的优先级高于赋值运算符。高→低算术运算符关系运算符赋值运算符例如:1.c>a+b等效于c>(a+b)2.a>b!=c等效于(a>b)!=c3.a=bb,a+b>b+c,(a=3)>(b=5),’a’<’b’,(a>b)>(b<c)关系表达式的值是一个逻辑值,即“真”或“假”。例如,关系表达式“5==3”的值为“假”“5>=0”的值为“真”。C语言没有逻辑型,以1代
3、表“真”,以“0”代表“假”。例如,若a=3,b=2,c=1,则:a>b的值为”真”,表达式的值为1。(a>b)==c的值为“真”,表达式的值为1。b+c<a的值为“假”,表达式的值为0。如果有以下赋值表达式:d=a>bd的值为1。f=a>b>cf的值为0注意:数学中的22&&x<104.2逻辑运算符和逻辑表达式用逻辑运算符将关系表达式或逻辑量连接起来就是逻辑表达式。4.2.1逻辑运算符及其优先次序C语言提供三种逻辑运算符:1.&&
4、逻辑与2.
5、
6、逻辑或3.!逻辑非说明:1.&&和
7、
8、”是“双目(元)运算符”,它要求有两个运算量(操作数)。如(a>b)&&(x>y),(a>b)
9、
10、(x>y)。2.“!”是一目(元)运算符”,只要求有一个运算量,如!(a>b)。逻辑运算规则如下:a&&b若a,b为真,则a&&b为真。a
11、
12、b若a,b之一为真,则a
13、
14、b为真。!a若a为真,则!a为假。下表为逻辑运算的“真值表”。用它表示当a和b的值为不同组合时,各种逻辑运算所得到的值。ab!a!ba&&ba
15、
16、bTTFFTTTFFTFTFTTFFTFFTTFF含逻辑运算的表达式计算优先顺序:优先次序:高→低!→算
17、术运算符→关系运算符→&&→
18、
19、→赋值运算符1)!a&&b
20、
21、x>y&&c((!a)&&b)
22、
23、((x>y)&&c)2)a>b&&x>y(a>b)&&(x>y)3)a==b
24、
25、x==y(a==b)
26、
27、(x==y)4.2.2逻辑表达式如前所述,逻辑表达式的值应该是一个逻辑量“真”或“假”。C语言编译系统在给出逻辑运算结果时,以数值1代表“真”,以0代表“假”,但在判断一个量是否为“真”时,以0代表“假”,以非0代表“真”。即将一个非零的数值认作为“真”。①若a=4,则!a的值为0。②若a=4,b=5,则a&&b的值为1。③a、b值同前,a
28、
29、b的值为1。④a、b值同
30、前,!a
31、
32、b的值为1。⑤4&&0
33、
34、2的值为1。通过这几个例子可以看出,由系统给出的逻辑运算结果不是0就是1,不可能是其它数值。而在逻辑表达式中作为参加逻辑运算的运算对象(操作数)可以是0(“假”)或任何非0的数值(按“真”对待)。例如5>3&&2
35、
36、8<4-!0表达式自左至右扫描求解。实际上,逻辑运算符两侧的运算对象不但可以是0和1,或者是0和非0的整数,也可以是任何类型的数据。可以是字符型、实型或指针型等。系统最终以0和非0来判定它们属于“真”或“假”。例如‘c’&&’d’的值为1(因为’c’和’d’的Ascii值都不为0,按“真”处理)。在逻辑表达式的求解
37、中,并不是所有的逻辑运算符都被执行,只是在必须执行下一个逻辑运算符才能求出表达式的解时,才执行该运算符。例如:1.a&&b&&c只有a为真(非0)时,才需要判别b的值,只有a和b都为真的情况下才需要判别c的值。只要a为假,就不必判别b和c,(此时整个表达式已确定为假)。如果a为真,b为假,不判别c。2.a
38、
39、b
40、
41、c只要a为真(非0)就不必判别b和c对&&运算符只有a≠0,才继续进行右面的运算。对
42、
43、运算符来说,只有a=0才继续进行其右面的运算。如果有下面的逻辑表达式:(m=a>b)&&(n=c>d)当a=1,b=2,c=3,d=4,m和n的原值为1由于a>b的值
44、为0,m=
此文档下载收益归作者所有