C语言程序课件ppt-第4章选择结构.pdf
《C语言程序课件ppt-第4章选择结构.pdf》由会员分享,可在线阅读,更多相关《C语言程序课件ppt-第4章选择结构.pdf(38页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第4章章 选选择择结结构构内内容容提提要要:关关系系运运算算符符和和关关系系表表达达式式逻逻辑辑运运算算符符和和逻逻辑辑表表达达式式选选择择结结构构控控制制语语句句ifif语语句句(单单分分支支、双双分分支支、多多分分支支、 if if语语句句的的嵌嵌套套)选选择择结结构构控控制制语语句句switchswitch语语句句(多多分分支支)4.1 关关系系运运算算符符和和关关系系表表达达式式1.1.关关系系运运算算符符及及其其优优先先次次序序 ( (小小于于) )= ( ( (大大于于) )= (= (大大于于或或等等于于) )= (= (等等于于) )!= (!= (不不等等于于) )优优先先
2、级级相相同同(高高)优优先先级级相相同同(低低)说说明明:关关系系运运算算符符的的优优先先级级低低于于算算术术运运算算符符关关系系运运算算符符的的优优先先级级高高于于赋赋值值运运算算符符2.2.关关系系表表达达式式用用关关系系运运算算符符将将两两个个表表达达式式(可可以以是是算算术术表表达达式式或或关关系系表表达达式式,逻逻辑辑表表达达式式,赋赋值值表表达达式式,字字符符表表达达式式)接接起起来来的的式式子子,称称关关系系表表达达式式例例:ab,a+bb+c,(a=3)(b=5),ab)(bb”的的值值为为“真真”,表表达达式式的的值值为为1。C C语语言言中中没没有有专专用用的的逻逻辑辑值值
3、,1 1代代表表真真,0 0代代表表假假 4.2 逻逻辑辑运运算算符符和和逻逻辑辑表表达达式式1.1.逻逻辑辑运运算算符符及及其其优优先先次次序序(1)& (1)& (逻逻辑辑与与) ) 相相当当于于其其他他语语言言中中的的ANDAND(2)| (2)| (逻逻辑辑或或) ) 相相当当于于其其他他语语言言中中的的OROR(3)! (3)! (逻逻辑辑非非) ) 相相当当于于其其他他语语言言中中的的NOTNOT例例:a&b a&b 若若a,ba,b为为真真,则则a&ba&b为为真真。 a|b a|b 若若a,ba,b之之一一为为真真,则则a|ba|b为为真真。 !a a 若若a a为为真真,则则
4、!a!a为为假假。优优先先次次序序:!(非非)-&()-|()逻逻辑辑运运算算符符中中的的“&”和和“|”低低于于关关系系运运算算符符,“!”高高于于算算术术运运算算符符2.2.逻逻辑辑表表达达式式用用逻逻辑辑运运算算符符将将关关系系表表达达式式或或逻逻辑辑量量连连接接起起来来的的式式子子就就是是逻逻辑辑表表达达式式。逻逻辑辑表表达达式式的的值值应应该该是是一一个个逻逻辑辑量量“真真”或或“假假”。例例:设设a=4a=4,b=5b=5:!a!a的的值值为为0 0a&ba&b的的值值为为1 1a|ba|b的的值值为为1 1!a|b!a|b的的值值为为1 14&0|24&0|2的的值值为为1 1任
5、任何何非非零零的的数数值值被被认认作作“真真”例例:53&83&84-!0 自自左左向向右右运运算算 1&0逻逻辑辑值值为为083逻逻辑辑值值为为1表表达达式式值值为为0在在逻逻辑辑表表达达式式的的求求解解中中,并并不不是是所所有有的的逻逻辑辑运运算算符符都都要要被被执执行行。(1)a&b&c (1)a&b&c 只只有有a a为为真真时时,才才需需要要判判断断b b的的值值,只只有有a a和和b b都都为为真真时时,才才需需要要判判断断c c的的值值。(2)a|b|c (2)a|b|c 只只要要a a为为真真,就就不不必必判判断断b b和和c c的的值值,只只有有a a为为假假,才才判判断断b
6、 b。a a和和b b都都为为假假才才判判断断c c例例:(m=ab)&(n=cd)当当a=1,b=2,c=3,d=4,ma=1,b=2,c=3,d=4,m和和n n的的原原值值为为1 1时时,由由于于“abab”的的值值为为0 0,因因此此m=0m=0,而而“n=cdn=cd”不不被被执执行行,因因此此n n的的值值不不是是0 0而而仍仍保保持持原原值值1 1。例例:用用逻逻辑辑表表达达式式来来表表示示闰闰年年的的条条件件 能能被被4整整除除,但但不不能能被被100整整除除。 能能被被4整整除除,又又能能被被400整整除除。答答(year%4=0&year%100!=0)|year%400=
7、0案案值值为为真真(1)是是闰闰年年,否否则则为为非非闰闰年年。引引例例:计计算算函函数数值值: :当当x=0 x=0时时,y=1;y=1; 当当x x0时时,y=sin(x)/x;y=sin(x)/x;需需考考虑虑:输输入入x 判判断断x值值 根根据据x值值,计计算算y值值 输输出出y值值显显然然 顺顺序序程程序序不不能能够够实实现现,须须引引入入选选择择结结构构程程序序。 输输入入x 真真 x为为0? 假假 y=1 y=sin(x)/x 输输出出y#include #include #include #include void main( ) void main( ) float x,y;
8、float x,y;printf(Enter x:);printf(Enter x:);scanf(%f,&x);scanf(%f,&x);if(x!=0.0)if(x!=0.0)y=sin(x)/x;y=sin(x)/x;else else y=1;y=1;printf(x=%5.2fty=%7.4fn,x,y);printf(x=%5.2fty=%7.4fn,x,y); 结结果果:Enter x:2Enter x:2 x= 2.00 y= 0.4546 x= 2.00 y= 0.45464.3 if 语语句句if语语句句是是用用来来判判定定所所给给定定的的条条件件是是否否满满足足,根根据据
9、判判定定的的结结果果(真真或或假假)决决定定执执行行给给出出的的两两种种操操作作之之一一。if语语句句的的三三种种形形式式:单单分分支支if语语句句、双双分分支支if语语句句和和多多分分支支if语语句句。例例如如:if (xy)printf (“%d”,x);这这种种if语语句句的的执执行行过过程程见见图图: 假假 真真xyprintf(“%d”,x);可可以以是是一一个个语语句句也也可可以以是是复复合合语语句句一一般般为为逻逻辑辑表表达达式式或或关关系系表表达达式式理理论论上上可可以以是是任任意意数数值值类类型型if (a) printf(“Hello, world”);4.3.1 单单分分
10、支支if语语句句单单分分支支if语语句句的的基基本本格格式式为为:if(表表达达式式) 语语句句;例例4.1 4.1 输输入入两两个个整整数数a a和和b b,如如果果abab,则则把把整整数数a a打打印印出出来来。#include #include void main( ) void main( ) int a ,b;int a ,b;printf(printf(请请输输入入整整数数a a和和b b的的值值:n);:n);scanf(%d,%d,&a,&b);scanf(%d,%d,&a,&b);if(ab) if(ab) printf(%dn,a);printf(%dn,a); 例例4.
11、2 4.2 大大小小写写字字母母转转换换. .#include #include void main( ) void main( ) char ch;char ch;printf(printf(请请输输入入一一个个大大写写字字母母:n);:n);scanf(%c,&ch);scanf(%c,&ch);if(ch=A&ch=A&ch y) printf(“%d”,x); else printf(“%d”,y);xyprintf(“%d”,x);printf(“%d”,y)真真假假注注意意注注意意例例4.3 读读程程序序#include void main( ) float x,y;printf(
12、enter x:);scanf(%f,&x);if (x=0)y=1;else y=(x*5+1)/x;printf(nx=%4.1fty=%4.1fn,x,y);例例4.4 输输入入一一个个整整数数a,判判断断它它是是偶偶数数还还是是奇奇数数?分分析析:偶偶数数:a%2=0#include void main( ) int a;printf(t input a number:);scanf(%d,&a);if (a%2=0) printf(nt%d is evenn,a);else printf(nt%d is oddn,a);结结果果: input a number:125 125 is
13、odd4.3.3 多多分分支支if语语句句基基本本格格式式为为:if(表表达达式式1) 语语句句块块1;elseif(表表达达式式2) 语语句句块块2;else if (表表达达式式n) 语语句句块块n;else 语语句句块块n+1;真真(非非0)假假(0)假假(0)假假(0)真真(非非0)真真(非非0)表表达达式式1语语句句块块1表表达达式式2表表达达式式n语语句句块块n+1语语句句块块2语语句句块块n图图4-3 多多分分支支if语语句句执执行行流流程程例例4.5:评评价价学学生生的的成成绩绩。(score90score90优优秀秀, 90score80, 90score80良良好好, ,
14、80score7080score70中中,70score60,70score60及及格格, score60, score60不不及及格格。)#include void main( ) int score;printf(input a score:);scanf(%d,&score);if (score=90) printf(优优秀秀n);else if (score=80) printf(良良好好n); else if (score=70) printf(中中n); else if (score=60) printf(及及格格n); else if (score60) printf(不不及及格
15、格n);结结果果: input a score:86 良良好好4.3.4 if语语句句的的嵌嵌套套if ( 表表达达式式) if ( 表表达达式式) 语语句句块块1; else 语语句句块块2;else if ( 表表达达式式 ) 语语句句块块3; else 语语句句块块4;if ( 表表达达式式 ) if ( 表表达达式式) 语语句句块块1;else if ( 表表达达式式) 语语句句块块2; else 语语句句块块3;内内嵌嵌if内内嵌嵌if内内嵌嵌ifif (if (表表达达式式 ) ) if ( if (表表达达式式 ) ) 语语句句块块1 1; else else if ( if (
16、表表达达式式 ) ) 语语句句块块2 2; else else 语语句句块块3 3; -1 (x0)1. #include void main( ) int x, y; scanf(%d ,&x) ;if(x=0) if (x0) y=1; else y=0;else y= -1;x=0y= -1x0y=1y=0 x0) y=1;else y=0;真真真真假假假假x0y=1y= 0 x=0y=- 14. y=0; if (x=0) if (x0) y=1; else y= - 1;真真真真假假假假x0y=1y= -1X!=0y=0真真真真假假假假x0y=1y= -1x!=0y=0y=- 1真真
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 程序 课件 ppt 选择 结构
限制150内