2、==(bc//a=(b>c)例inta=3,b=2,c=1,d,f;a>b(a>b)==cb+cbf=a>b>c//表达式值1//表达式值1//表达式值0//d=1//f=0C语言程序设计第5章C程序流程设计例若a=0;b=0.5;x=0.3;则a<=x<=b的值为0例5>2>7>8在C中是允许的,值为0例‘a’>0结果为‘A’>100结果为10C语言程序设计第5章C程序流程设计2.关系运算注意问题:◆注意区分“=”与“==”如:inta=0,b=1;if(a=b)printf(“aequaltob”);elsepr
3、intf(“anotequaltob”);◆应避免对实数作相等或不等的判断如:1.0/3.0*3.0==1.0结果为0可改写为:fabs(1.0/3.0*3.0-1.0)<1e-6C语言程序设计第5章C程序流程设计ab!a!ba&&ba
4、
5、b真假真假假假真真二.逻辑运算符和表达式1.逻辑运算符种类:!&&
6、
7、2.逻辑运算真值表C语言中,运算量:0表示“假”,非0表示“真”,运算结果:0和10表示“假”,1表示“真”,真假假假假假真真假假真真真假真真C语言程序设计第5章C程序流程设计!(2)&&(11)
8、
9、(12)高低例a<=x&&x<=ba>
10、b&&x>ya==b
11、
12、x==y!a
13、
14、a>b3.优先级:5.结合方向:!:从右向左&&:从左向右
15、
16、:从左向右//(a<=x)&&(x<=b)//(a>b)&&(x>y)//(a==b)
17、
18、(x==y)//(!a)
19、
20、(a>b)算术运算符关系运算符赋值运算符高低&&和
21、
22、!(非)C语言程序设计第5章C程序流程设计!(2)&&(11)
23、
24、(12)高低!:从右向左&&:从左向右
25、
26、:从左向右例.如果a=4,b=5,下列表达式的结果是:!aa&&ba
27、
28、b!a
29、
30、b4&&0
31、
32、25>3&&2
33、
34、8<5-!0‘c’&&‘d’值为1值为0值为1值为1
35、值为1值为1(5>3)&&2
36、
37、(8<(5-(!0)))值为1算术运算符关系运算符赋值运算符高低&&和
38、
39、!(非)C语言程序设计第5章C程序流程设计6.短路特性:逻辑表达式求解时,并非所有的逻辑运算符都被执行,只是在必须执行下一个逻辑运算符才能求出表达式的解时,才执行该运算符。例a&&b&&c//只在a为真时,才判别b的值;只在a、b都为真时,才判别c的值例a
40、
41、b
42、
43、c//只在a为假时,才判别b的值;只在a、b都为假时,才判别c的值C语言程序设计第5章C程序流程设计a=1,b=2,c=3,d=4,m=1,n=1(m=a>b)&&(n=c>d
44、)例:if(x>y)printf(“%d”,x);三.if语句(条件选择语句)1.if语句的三种形式<形式一>:格式:if(expression)ˋˋstatement执行过程:exprstatement非0=0statement2exprstatement1非0=0<形式二>:格式:if(expression)ˋstatement1ˋelseˋstatement2执行过程:例:if(x>y)max=x;elsemax=y;C语言程序设计第5章C程序流程设计<形式三>:格式:if(expr1)statement1elseif(expr2)st
45、atement2elseif(expr3)statement3…...elsestatementn执行过程:如:if(salary>10000)index=0.4;elseif(salary>8000)index=0.3;elseif(salary>6000)index=0.2;elseif(salary>4000)index=0.1;elseindex=0;statemntnexpr1statemnt1非0=0expr2expr3statemnt3statemnt2非0非0=0=0……C语言程序设计第5章C程序流程设计2.有关if语句的几点
46、说明:if后面的表达式类型任意如考虑下面程序的输出结果:#includemain(){intx,y,t;scanf(“%d,%d”,&x,&y);