资源描述:
《第5章_选择(无闰年)谭浩强 著 C程序设计ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第五章选择结构程序设计本章要点关系表达式逻辑表达式选择结构程序设计主要内容5.1关系运算符和关系表达式5.2逻辑运算符和逻辑表达式5.3if语句5.4switch语句5.5程序举例5.1关系运算符和关系表达式1.关系运算符及其优先次序<(小于)<=(小于或等于)>(大于)>=(大于或等于)==(等于)!=(不等于)优先级相同(高)优先级相同(低)说明:关系运算符的优先级低于算术运算符关系运算符的优先级高于赋值运算符5.1关系运算符和关系表达式关系表达式的值是一个逻辑值,即“真”或“假”。2.关系表达式用关系运算符将两个表达式(可以是算
2、术表达式,赋值表达式,字符表达式,关系表达式,逻辑表达式)接起来的式子,称关系表达式例:a>b,a+b>b+c,(a=3)>(b=5),‘a’<‘b’,(a>b)>(bb”的值为“真”,表达式的值为1。C语言中没有专用的逻辑值,1代表真,0代表假5.2逻辑运算符和逻辑表达式1.逻辑运算符及其优先次序(1)&&(逻辑与)相当于其他语言中的AND(2)
3、
4、(逻辑或)相当于其他语言中的OR(3)!(逻辑非)相当于其他语言中的NOT例:a&&b若a,b均为真,则a&&b为真。a
5、
6、b若a,b之一为真,则a
7、
8、b为真。
9、!a若a为真,则!a为假。优先次序:!(非)->&&()->
10、
11、()逻辑运算符中的“&&”和“
12、
13、”低于关系运算符,“!”高于算术运算符5.2逻辑运算符和逻辑表达式2.逻辑表达式用逻辑运算符将关系表达式或逻辑量连接起来的式子就是逻辑表达式。逻辑表达式的值应该是一个逻辑值:“真”或“假”。例:设a=4,b=5:!a的值为0a&&b的值为1a
14、
15、b的值为1!a
16、
17、b的值为14&&0
18、
19、2的值为1任何非零的数值被认作“真”由系统给出的逻辑运算结果(逻辑值)不是0就是1,不可能是其他数值,而在逻辑表达式中作为参加逻辑运算的操作数(逻辑量)可以
20、是0(“假”)或任何非0的数值(“真”)5.2逻辑运算符和逻辑表达式例:5>3&&8<4-!0自左向右运算1&&0逻辑值为08<3逻辑值为04-1值为3!0逻辑值为15>3逻辑值为1表达式值为0关系表达式的值是一个逻辑值,即“真”或“假”。5.2逻辑运算符和逻辑表达式在逻辑表达式的求解中,并不是所有的逻辑运算符都要被执行。(1)a&&b&&c只有a为真时,才需要判断b的值,只有a和b都为真时,才需要判断c的值。(2)a
21、
22、b
23、
24、c只要a为真,就不必判断b和c的值,只有a为假,才判断b。a和b都为假才判断c注意例:(m=a>b)&&(n
25、=c>d)当a=1,b=2,c=3,d=4,m和n的原值为1时,由于“a>b”的值为0,因此m=0,而“n=c>d”不被执行,因此n的值不是0而仍保持原值1。5.3if语句1.If语句的三种基本形式(1)if(表达式)语句例:if(x>y)printf(“%d”,x);表达式语句真(非0)假(0)5.3if语句(2)if(表达式)语句1else语句2例:if(x>y)printf(“%d”,x);elseprintf(“%d”,y);条件语句1语句2YN5.3if语句(3)if(表达式1)语句1elseif(表达式2)语句2elsei
26、f(表达式3)语句3……elseif(表达式m)语句melse语句n5.3if语句例:if(number>500)cost=0.15;elseif(number>300)cost=0.10;elseif(number>100)cost=0.075;elseif(number>50)cost=0.05;elsecost=0;5.3if语句说明:(1)3种形式的if语句中在if后面都有表达式,一般为逻辑表达式或关系表达式。(2)第二,第三种形式的if语句中,在每个else前面有一个分号,整个语句结束处有一个分号。(3)在if和else后面
27、可以只含有一个内嵌的操作语句,也可以有多个操作语句,此时用花括号将几个语句括起来成为一个复合语句。5.3if语句注:if后若出现多个语句,要用{}括起来,否则编译时提示错误(提示else与if不匹配)例:#includevoidmain(){inta=0,b=0,c=0,d=0;if(a==0)b=1;c=2;elsed=3;printf(″%d,%d,%d,%d″,a,b,c,d);}编译时提示错误!应改写为{b=1;c=2;}或b=1,c=2;(正确)结果:0,1,2,05.3if语句例5.1输入
28、两个实数,按代数值由小到大的顺序输出这两个数。#includevoidmain(){floata,b,t;scanf(″%f,%f″,&a,&b);if(a>b){t=a;a=b;b=t;}