欢迎来到天天文库
浏览记录
ID:36324630
大小:488.81 KB
页数:28页
时间:2019-05-09
《c语言课件-第4章选择分支结构程序设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、主要内容:关系运算、逻辑运算、二路和多路分支。选择结构:根据条件决定执行二路或多路分支中的一路。二路分支if…else…语句多路分支switch语句第4章选择分支结构程序设计例:从键盘上输入x、y、z三个整形变量,输出其中的最小值:#includemain(){intx,y,z,min;scanf(“%d,%d,%d”,&x,&y,&z);if(xz)min=z;printf(“Theleastis:%d”,min);}举例条件:是关系表达式或逻辑表
2、达式,值为逻辑值:真或假。C语言用1表示真,用0表示假;判断时非0为真。4.1关系运算符和关系表达式>大于>=大于等于<小于<=小于等于==等于!=不等于关系运算符说明:(1)六个关系运算符都是双目运算符,如:inta=2,b=3;a100结果为假。运算对象为字符数据时,比较按其ASCII码进行如:表达式:’a’>’b’值为假(5)与数学表达式的区
3、别如:34、5、逻辑或!逻辑非意义:a&&b当a和b同6、时为真时,表达式的值为真。a7、8、b当a和b之一为真时,表达式的值为真。!a当a的值为真,则表达式的值为假。4.2逻辑运算符与逻辑表达式说明:(1)&&和9、10、是双目运算符!是单目运算符(2)&&和11、12、的运算级别低于关系运算符,!的运算级别高于关系运算符和算术运算符,注意:!的结合方向是从右向左。&&和13、14、的结合方向是从左向右,(3)不能确定的情况下,添加括号保证运算次序。尽量避免复杂烦琐的逻辑表达式。优先顺序:①!②算术运算③<<=>>=④==!=⑤&&⑥15、16、⑦赋值运算(4)参加逻辑运算的运算对象可以是0(“假”)或任何非017、的数值(“真”);但运算后的结果和关系运算的结果一样,只能是逻辑值0和1。C语言无专门的逻辑类型,其它类型的数据也可以参与逻辑运算,在判别时,“非0”作为“真”,“0”作为“假”。(5)在逻辑表达式的求解中,并不是所有的逻辑运算符都被执行,只有在必须执行下一个逻辑运算符才能求出表达式的解时,才执行该运算符。例:intx=-1;执行了++x18、19、++x20、21、++x后,x的值是?x=1例若a=0;b=0.5;x=0.3;则a<=x<=b的值为0例'a'>0结果为1'A'>100结果为0例注意区分"="与"=="的差别inta=0,22、b=1;if(a=b)printf("aequaltob");elseprintf("anotequaltob");例应避免对实数作相等或不等的判断如1.0/3.0*3.0==1.0结果为0可改写为:fabs(1.0/3.0*3.0-1.0)<1e-6关系运算注意:1.if/else语句形式:if(表达式)语句1else语句2执行流程:如果表达式值非0,执行语句1;否则,执行语句2;无论执行了哪一路分支之后,都执行if的下一条语句;例if(x>y)max=x;elsemax=y;4.3二路分支:if语句简单if语句语句形式23、:if(表达式)语句;执行过程:如果表达式值非0,执行该语句,然后执行if的下一个语句;否则直接执行if的下一个语句。例:main(){inta,b,max;printf(”请输入两个数:”);scanf(”%d%d”,&a,&b);max=a;if(maxz交换x,yx>y输入x,y,zYNYN交换y,zy>zYN#includem24、ain(){intx,y,z,t;printf(“Pleaseinputthex,y,z:”);scanf(“%d%d%d”,&x,&y,&z);if(x>y){t=x;x=y;y=t;}if(x>z){t=x;x=z;z=t;}if(y>z){t=y;y=z;z=t;}printf(“Smalltob
4、
5、逻辑或!逻辑非意义:a&&b当a和b同
6、时为真时,表达式的值为真。a
7、
8、b当a和b之一为真时,表达式的值为真。!a当a的值为真,则表达式的值为假。4.2逻辑运算符与逻辑表达式说明:(1)&&和
9、
10、是双目运算符!是单目运算符(2)&&和
11、
12、的运算级别低于关系运算符,!的运算级别高于关系运算符和算术运算符,注意:!的结合方向是从右向左。&&和
13、
14、的结合方向是从左向右,(3)不能确定的情况下,添加括号保证运算次序。尽量避免复杂烦琐的逻辑表达式。优先顺序:①!②算术运算③<<=>>=④==!=⑤&&⑥
15、
16、⑦赋值运算(4)参加逻辑运算的运算对象可以是0(“假”)或任何非0
17、的数值(“真”);但运算后的结果和关系运算的结果一样,只能是逻辑值0和1。C语言无专门的逻辑类型,其它类型的数据也可以参与逻辑运算,在判别时,“非0”作为“真”,“0”作为“假”。(5)在逻辑表达式的求解中,并不是所有的逻辑运算符都被执行,只有在必须执行下一个逻辑运算符才能求出表达式的解时,才执行该运算符。例:intx=-1;执行了++x
18、
19、++x
20、
21、++x后,x的值是?x=1例若a=0;b=0.5;x=0.3;则a<=x<=b的值为0例'a'>0结果为1'A'>100结果为0例注意区分"="与"=="的差别inta=0,
22、b=1;if(a=b)printf("aequaltob");elseprintf("anotequaltob");例应避免对实数作相等或不等的判断如1.0/3.0*3.0==1.0结果为0可改写为:fabs(1.0/3.0*3.0-1.0)<1e-6关系运算注意:1.if/else语句形式:if(表达式)语句1else语句2执行流程:如果表达式值非0,执行语句1;否则,执行语句2;无论执行了哪一路分支之后,都执行if的下一条语句;例if(x>y)max=x;elsemax=y;4.3二路分支:if语句简单if语句语句形式
23、:if(表达式)语句;执行过程:如果表达式值非0,执行该语句,然后执行if的下一个语句;否则直接执行if的下一个语句。例:main(){inta,b,max;printf(”请输入两个数:”);scanf(”%d%d”,&a,&b);max=a;if(maxz交换x,yx>y输入x,y,zYNYN交换y,zy>zYN#includem
24、ain(){intx,y,z,t;printf(“Pleaseinputthex,y,z:”);scanf(“%d%d%d”,&x,&y,&z);if(x>y){t=x;x=y;y=t;}if(x>z){t=x;x=z;z=t;}if(y>z){t=y;y=z;z=t;}printf(“Smalltob
此文档下载收益归作者所有