资源描述:
《大学C语言基础自学课件 第5章.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、内容提要:★逻辑运算符和逻辑表达式★关系运算符和关系表达式★if语句★switch语句Ch5选择结构程序设计一、逻辑运算符和表达式P52什么是逻辑运算逻辑运算用来判断一件事情是“对”的还是“错”的,或者说是“成立”还是“不成立”,判断的结果是二值的。什么是逻辑量凡是参加逻辑运算的变量、常量都是逻辑量。什么是逻辑值逻辑量、逻辑表达式其最后的运算结果的值就是逻辑值。逻辑值只能是“0”和“1”这二个数。“1”表示逻辑真(成立);“0”表示逻辑假(不成立)。ab!a!ba&&ba
2、
3、b真假真假假假真真一、逻辑运算符和表达式P52逻辑运算符
4、种类:&&(与)
5、
6、(或)!(非)逻辑运算真值表C语言中,运算量:0表示“假”,非0表示“真”,运算结果:0表示“假”,1表示“真”,真假假假假假真真假假真真真假真真真真假假!(2)&&(11)
7、
8、(12)高低优先级:结合方向:!:从右向左&&:从左向右
9、
10、:从左向右例a=4;b=5;!aa&&ba
11、
12、b!a
13、
14、ba&&0
15、
16、25>3&&2
17、
18、8<4-!0‘c’&&‘d’值为1值为0值为1值为1值为1值为1//(5>3)&&2
19、
20、(8<(4-(!0)))值为1!算术运算符关系运算符&&
21、
22、赋值运算符高低例a=1;b=2;c=3;d
23、=4;m=1;n=1;(m=a>b)&&(n=c>d)//结果m=0,n=1含&&和
24、
25、表达式在编译时,即从左到右的运算中,结果一经确定就不向下运算下去。(1)a&&b&&c只要a为假,就不必判断b和c的值,只有a为真时,才需要判断b的值,只有a和b都为真时,才需要判断c的值。(2)a
26、
27、b
28、
29、c只要a为真,就不必判断b和c的值,只有a为假,才判断b。a和b都为假才判断c短路特性:逻辑表达式求解时,并非所有的逻辑运算符都被执行,只是在必须执行下一个逻辑运算符才能求出表达式的解时,才执行该运算符P94例:若A=5,B=0,求表达式!
30、B<2
31、
32、5&&A<=5的值。!B<2
33、
34、5&&A<=5第一步:1<2
35、
36、5&&A<=5第二步:1
37、
38、5&&A<=5第三步:1
39、
40、5&&1第四步:1
41、
42、1第五步:1例:若A=3,B=4,C=5写出下列逻辑表达式的值。(1)!(A+B)+C-1&&B+C/2!(3+4)+C-1&&B+C/20+C-1&&B+C/20+C-1&&B+24&&61两字符之间不能加空格二、关系运算符和表达式P51关系运算符种类:<<=>=>==!=结合方向:自左向右优先级别:<<=>>===!=优先级6(高)优先级7(低)关系表达式的值:是逻辑值“真”或
43、“假”,用1和0表示例inta=3,b=2,c=1,d,f;a>ba>b==cb+cbf=a>b>c//表达式值1//表达式值1//表达式值0//d=1//f=0算术运算符关系运算符赋值运算符高于高于例inti=1,j=7,a;a=i+(j%4!=0);则a=2例‘a’>0结果为‘A’>100结果为10说明:数值比较:数字的大小字符比较:ASCⅡ的大小注意“==”与“=”的区别选择型程序设计P95if语句(条件选择语句)if语句的三种形式●形式一:◆格式:if(表达式)语句1;语句2;◆执行过程:形式二:格式:if(表
44、达式)语句1;else语句2;语句3;执行过程:例:if(x>y)max=x;elsemax=y;printf("%d",max);例:if(x>y)printf(“%d”,x);printf(“%d”,y);表达式语句1非0=0语句2表达式语句1语句2非0=0语句3后续语句●形式三:◆格式:if(表达式1)语句1elseif(表达式2)语句2elseif(表达式3)语句3…...elseif(表达式m)语句melse语句n表达式1语句1非0=0表达式2表达式3语句n语句3语句2非0非0=0=0执行过程:#include45、o.h>voidmain(){floatx,y;printf("enterx:");scanf("%f",&x);if(x==10)printf("notdefinex.");elseif(x<=1)y=x+5;elseif(x<10)y=2*x;elsey=3/(x-10);printf("x=%.2f,y=%.2f",x,y);}y=3x-10x>102x146、’a’);说明:if后面的表达式类型任意语句可以是复合语句例考虑下面程序的输出结果:#includevoidmain(){intx,y,t;scanf("%d,%d",&x,&y);if(x>y){t=x;x=y;y=t;}els