资源描述:
《c语言 第5章选择结构程序设计.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第5章选择结构程序设计掌握关系表达式与逻辑表达式掌握选择结构控制语句(if语句,switch语句)能够编写较复杂的程序引例计算函数值需要考虑:1)输入x2)判断x值3)根据x值,计算y值4)输出y值显然2),3)顺序程序不能实现,须引入选择程序关系运算符和表达式关系运算:对两个量进行“比较运算”关系运算符种类:<<===>=>!=结合方向:自左向右优先级别:<<=>>===!=优先级6(高)优先级7(低)例c>a+b//c>(a+b)a>b!=c//(a>b)!=ca==bc//a=(b>c)关系表达式的值:是逻辑值“
2、真”或“假”,用1和0表示例inta=3,b=2,c=1,d,f;a>b(a>b)==cb+cbf=a>b>c//表达式值1//表达式值1//表达式值0//d=1//f=0算术运算符—关系运算符—赋值运算符(高)(低)关系表达式:用关系运算符将两个表达式连接起来的有意义的式子说明:数值量比较:数字的大小字符量比较:ASCII的大小关系运算注意:例若a=0;b=0.5;x=0.3;则a<=x<=b的值为0例5>2>7>8在C中是允许的,值为0例inti=1,j=7,a;a=i+(j%4!=0);则a=2例‘a’>0结果为‘A’>100结果为
3、10例注意区分“=”与“==”inta=0,b=1;if(a==b)printf(“aequaltob”);elseprintf(“anotequaltob”);例应避免对实数作相等或不等的判断如1.0/3.0*3.0==1.0结果为可改写为:fabs(1.0/3.0*3.0-1.0)<1e-60ab!a!ba&&ba
4、
5、b真假真假假假真真逻辑运算符和表达式逻辑运算符种类:&&
6、
7、!逻辑表达式:用逻辑运算符将关系表达式或逻辑量连接起来的有意义的式子逻辑运算真值表真假假假假假真真假假真真真假真真逻辑运算量:0表示“假”,非0表示“真”逻辑表达式的值:0
8、表示“假”,1表示“真”!(2)&&(11)
9、
10、(12)高低例a<=x&&x<=ba>b&&x>ya==b
11、
12、x==y!a
13、
14、a>b优先级:结合方向:!:从右向左&&:从左向右
15、
16、:从左向右//(a<=x)&&(x<=b)//(a>b)&&(x>y)//(a==b)
17、
18、(x==y)//(!a)
19、
20、(a>b)!(非)算术运算符关系运算符&&
21、
22、赋值运算符高低例a=4;b=5;!aa&&ba
23、
24、b!a
25、
26、b4&&0
27、
28、25>3&&2
29、
30、8<4-!0‘c’&&‘d’值为1值为0值为1值为1值为1值为1//(5>3)&&2
31、
32、(8<(4-(!0)))值为1短
33、路特性:逻辑表达式求解时,并非所有的逻辑运算符都被执行,只是在必须执行下一个逻辑运算符才能求出表达式的解时,才执行该运算符例a&&b&&c//只在a为真时,才判别b的值;只在a、b都为真时,才判别c的值例a
34、
35、b
36、
37、c//只在a为假时,才判别b的值;只在a、b都为假时,才判别c的值例a=1;b=2;c=3;d=4;m=1;n=1;(m=a>b)&&(n=c>d)//表达式结果0如:判断某年year是否为闰年(闰年:能被4整除,但不能被100整除;或能被400整除)year%4==0&&year%100!=0
38、
39、year%400==0例:写出C语言的表
40、达式(x>2
41、
42、x<1)&&x!=0写出表达式的值(a=2,b=0,c=-2.5)a*b
43、
44、c!b&&c0
45、
46、a1&&!a/c1110选择结构程序设计if语句(条件选择语句)if语句的三种形式形式一:条件执行格式:if(expression)A执行过程:exprA非0=0例:if(x>y)printf(“%d”,x);exprAB非0=0形式二:分支选择格式:if(expression)AelseB执行过程:例:if(x>y)max=x;elsemax=y;条件,逻辑表达式语句例:if(x>y){z=y;y=x;x=z};形式三:多重分支格式:if(
47、expr1)statement1elseif(expr2)statement2elseif(expr3)statement3…...[elsestatementn]expr1statemnt1非0=0expr2expr3statemntnstatemnt3statemnt2非0非0=0=0执行过程:例:if(salary>1000)index=0.4;elseif(salary>800)index=0.3;elseif(salary>600)index=0.2;elseif(salary>400)index=0.1;elseindex=0;如:if(
48、a==b&&x==y)printf(“a=b,x=y”);if(3)printf(“OK”);if(‘a’)