资源描述:
《语言选择结构课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第四章选择结构程序设计本章要点关系表达式逻辑表达式选择结构程序设计主要内容5.1关系运算符和关系表达式5.2逻辑运算符和逻辑表达式5.3if语句5.4switch语句5.5程序举例4.1关系运算符和关系表达式1.关系运算符及其优先次序<(小于)<=(小于或等于)>(大于)>=(大于或等于)==(等于)!=(不等于)优先级相同(高)优先级相同(低)说明:关系运算符的优先级低于算术运算符关系运算符的优先级高于赋值运算符4.1关系运算符和关系表达式2.关系表达式用关系运算符将两个表达式(可以是算术表达式或关系表达
2、式,逻辑表达式,赋值表达式,字符表达式)接起来的式子,称关系表达式例:a>b,a+b>b+c,(a=3)>(b=5),’a’<‘b’,(a>b)>(bb”的值为“真”,表达式的值为1。C语言中没有专用的逻辑值,1代表真,0代表假4.2逻辑运算符和逻辑表达式1.逻辑运算符及其优先次序(1)&&(逻辑与)相当于其他语言中的AND(2)
3、
4、(逻辑或)相当于其他语言中的OR(3)!(逻辑非)相当于其他语言中的NOT例:a&&b若a,b为真,则a
5、&&b为真。a
6、
7、b若a,b之一为真,则a
8、
9、b为真。!a若a为真,则!a为假。优先次序:!(非)->&&()->
10、
11、()逻辑运算符中的“&&”和“
12、
13、”低于关系运算符,“!”高于算术运算符4.2逻辑运算符和逻辑表达式2.逻辑表达式用逻辑运算符将关系表达式或逻辑量连接起来的式子就是逻辑表达式。逻辑表达式的值应该是一个逻辑量“真”或“假”。例:设a=4,b=5:!a的值为0a&&b的值为1a
14、
15、b的值为1!a
16、
17、b的值为14&&0
18、
19、2的值为1任何非零的数值被认作“真”4.2逻辑运算符和逻辑表达式例:5>3&
20、&8<4-!0自左向右运算1&&0逻辑值为08<3逻辑值为04-1值为3!0逻辑值为15>3逻辑值为1表达式值为04.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=c>d)当a=1,b=2,c=3,d=4,m和n的原值为1时,由于“a>b”的值为0,因此m=0,而
25、“n=c>d”不被执行,因此n的值不是0而仍保持原值1。4.2逻辑运算符和逻辑表达式用逻辑表达式来表示闰年的条件能被4整除,但不能被100整除。能被100整除,又能被400整除。答(year%4==0&&year%100!=0)
26、
27、year%400==0案值为真(1)是闰年,否则为非闰年。4.3if语句1.if语句的三种基本形式(1)if(表达式)语句例:if(x>y)printf(“%d”,x);表达式语句真(非0)假(0)4.3if语句(2)if(表达式)语句1else语句2例:if(x>y)print
28、f(“%d”,x);elseprintf(“%d”,y);条件语句1语句2YN4.3if语句(3)if(表达式1)语句1elseif(表达式2)语句2elseif(表达式3)语句3……elseif(表达式m)语句melse语句n4.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;4.3if语句说明:(1)3
29、种形式的if语句中在if后面都有表达式,一般为逻辑表达式或关系表达式。(2)第二,第三种形式的if语句中,在每个else前面有一个分号,整个语句结束处有一个分号。(3)在if和else后面可以只含有一个内嵌的操作语句,也可以由多个操作语句,此时用花括号将几个语句括起来成为一个复合语句。4.3if语句例5.1输入两个实数,按代数值由小到大的顺序输出这两个数。#includevoidmain(){floata,b,t;scanf(″%f,%f″,&a,&b);if(a>b){t=a;
30、a=b;b=t;}printf(″%5.2f,%5.2f″,a,b);}yna>bT=aA=bB=t4.3if语句例5.2输入三个数a,b,c,要求按由小到大的顺序输出。Ifa>b将a和b对换Ifa>c将a和c对换Ifb>c将b和c对换a>ba>cb>ca和b交换a和c交换c和b交换yyynn4.3if语句#includevoidmain(){floata,b,c,t;scanf