资源描述:
《C++ C语言 选择控制结构课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第五章选择结构程序设计关系运算符和关系表达式逻辑运算符和逻辑表达式if语句switch语句程序举例§5.1关系运算符和关系表达式关系运算是逻辑运算中比较简单的一种。所谓“关系运算”实际上是“比较运算”。将两个值进行比较,判断其比较的结果是否符合给定的条件。例如,a>3是一个关系表达式,“大于”号是一个关系运算符,若a的值为5,则满足给定的“a>3”条件,因此关系表达的值为“真”;若a的值为2,不满足“a>3”条件,则称关系表达式的值为“假”。§5.1.1关系运算符及其优先次序①<(小于)②<=(小于或等于)优先级别相同(高)③>(大于)
2、④>=(大于或等于)⑤==(等于)优先级别相同(低)⑥!=(不等于)C语言提供的6种关系运算符有关关系运算符和其它运算符的优先次序(1)前四种关系运算符的优先级别相同,后两种相同(2)关系运算符的优先级别低于算术运算符。(3)关系运算符的优先级别高于赋值运算符。算术运算符(高)关系运算符赋值运算符(低)§5.1.2关系表达式什么叫关系表达式:用关系运算符将两个表达式(可以是算术表达式或关系表达式、逻辑表达式、赋值表达式、字符表达式)连接起来的式子,就叫做关系表达式。关系表达式的值是一个逻辑值,即“真”或“假”。例如:“5==2”的值为“
3、假”,“6>=0”的值为“真”。C语言没有逻辑型数据,以“1”代表“真”,以“0”代表“假”。例如,a=3,b=2,c=1关系表达式“a>b”的值为“1”。关系表达式“(a>b)==c”的值为“1”。因为“a>b”的值为“1”,等于c的值,所以结果为“1”。5.2逻辑运算符和逻辑表达式用逻辑运算符将关系表达式和逻辑量连接起来的式子就叫做逻辑表达式。在这一节中将主要介绍如下两部分:逻辑运算符及其优先次序逻辑表达式§5.2.1逻辑运算符及其优先次序C语言提供了如下三种逻辑运算符:⑴&&逻辑与(相当于其他语言中的AND)⑵
4、
5、逻辑或(相当于其
6、他语言中的OR)⑶!逻辑非(相当于其他语言中的NOT)“&&”和“
7、
8、”是“双目运算符”,它要求有两个运算量(操作数)。例(a>b)&&(x>y),(a>b)
9、
10、(x>y)“!”是“单目运算符”,只有一个运算量,例如!(a>b)a&&b若a、b为真,则a&&b为真。a
11、
12、b若a、b之一为真,则a
13、
14、b为真。!a若a为真,则!a为假。若在一个逻辑表达式中包含多个逻辑运算符时,如:!a&&b
15、
16、x>&&c按如下的优先次序:⑴(高)!→&&→
17、
18、(低)⑵逻辑运算符中的“&&”和“
19、
20、”低于关系运算符,“!”高于算术运算符。(a>b)&&(x>
21、y)可写为a>b&&x>y(a==b)
22、
23、(x==y)可写为a==b
24、
25、x==y(!a)
26、
27、(a>b)可写为!a
28、
29、a>b!(非)(高)算术运算符关系运算符&&和
30、
31、赋值运算符(低)5.2.2逻辑表达式如前所述,逻辑表达式的值应该是一个逻辑量“真”或“假”。C语言编译系统在给出逻辑运算结果时,以数值1代表“真”,以0代表“假”,但在判断一个量是否为“真”时,以0代表“假”,以非0代表“真”。即将一个非零的数值认作为“真”。具体说明如下:⑴若a=4,则!a的值为0。⑵若a=4,b=5,则a&&b的值为1。⑶a、b的值同上,a
32、
33、b的值为1
34、。⑷a、b的值同上,!a
35、
36、b的值为1。⑸4&&0
37、
38、2的值为1。通过上述几个例子可看出,由系统给出的逻辑运算结果不是0就是1,不可能是其他数值。而在逻辑表达式中作为参加运算的运算对象可以是0“假”或任何非0数值。如果在一个表达式中不同位置上出现数值,应区分哪些是作为数值运算或关系运算对象,哪些作为逻辑运算对象。实际上,逻辑运算符两侧的运算对象不但可以是0和1,或是0和非0的整数,也可以是任何类型的数据。可以是字符型、实型或指针型等。系统最终以0和非0来判定它们属于“真”或“假”。例如:‘c’&&’b’该表达式的值为1。(为什么?)在逻
39、辑表达式的求解中,并不是所有的逻辑运算符都被执行,只是在必须执行下一个逻辑运算符才能求出表达式的解时,才执行该运算符。请看下面的解释:a&&b&&c只有a为真(非0)时,才需要判别b的值,只有a和b都为真的情况下才需要判别c的值。只要a为假,就不必判别b和c(此时整个表达式已确定为假)。如果a为真,b为假,不用判别c。见右图。abc1真0(假)非0(真)0(假)非0(真)0(假)非0(真)0(假)abc1真非0(真)0假非0(真)0假非0(真)0假0假⑵a
40、
41、b
42、
43、c只要a为真(非0),就不必判断b和c;只有a为假,才判别b;a和b都为
44、假才判别c。见右图所示也就是说,对&&运算符来说,只有a≠0,才继续进行右面的运算。对运算符
45、
46、来说,只有a=0,才能继续进行其右面的运算。如果有下面的逻辑表达式:当a=1,b=2,c=3,d=4,m和n的