《选择结构设计》PPT课件.ppt

上传人:牧羊曲112 文档编号:5611600 上传时间:2023-08-02 格式:PPT 页数:42 大小:266.50KB
返回 下载 相关 举报
《选择结构设计》PPT课件.ppt_第1页
第1页 / 共42页
《选择结构设计》PPT课件.ppt_第2页
第2页 / 共42页
《选择结构设计》PPT课件.ppt_第3页
第3页 / 共42页
《选择结构设计》PPT课件.ppt_第4页
第4页 / 共42页
《选择结构设计》PPT课件.ppt_第5页
第5页 / 共42页
点击查看更多>>
资源描述

《《选择结构设计》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《选择结构设计》PPT课件.ppt(42页珍藏版)》请在三一办公上搜索。

1、第5章 选择结构程序设计,5.1 关系运算符和关系表达式,5.1.1 关系运算符及其优先次序,1.C语言的6种关系运算符:=!=,2.优先次序,=(同级)=!=(同级),高,低,3.结合方向:左结合注意:关系运算符的优先级低于算术运算符,但高于赋值运算符。,例如:aa+b 等效于 c(a+b)算术运算符 ab=c 等效于(ab)=c 关系运算符 a=bc 等效于 a=(bc)赋值运算符,5.1.2 关系表达式 1概念:用关系运算符将两个表达式连接起 来的式子,称关系表达式。,例:a/21+3b(a=3)(b=5)ab)(bc),2关系表达式的值 关系表达式成立时,其值为1 关系表达式不成立时,

2、其值为0例:若a=3,b=2,c=1 则 ab表达式的值为1(ab)=c表达式的值为1b+cb 表达式的值为1f=abc表达式的值为0,f=(ab)&(bc),5.2.1 逻辑运算符及其优先次序 1.C语言的三种逻辑运算符&逻辑与 逻辑或!逻辑非一目(元)运算符,5.2 逻辑运算符和逻辑表达式,二目(元)运算符,2.优先次序!&,高,低,3.结合方向,!右结合&左结合,5.2.2 逻辑表达式概念:用逻辑运算符将表达式连接起来的式 子就是逻 辑表达式。,例:!a a+3&b x y(i3)&(j=4),逻辑表达式的值应该是一个逻辑量“真”或“假”。C给出逻辑运算结果时,以数值1代表“真”,以0代

3、表“假”,但判断一个量是否为“真”时,以0代表“假”,以非0代表“真”。,例:若a=4,b=5!a a&b a b!a b 4&0 2,2.逻辑表达式的值,值为,值为,值为,值为,值为,0,1,1,1,1,例:a&b&c,a,b,c,注:在进行逻辑表达式的求解中,并不是所有的逻辑运算都被执行,只是在必须执行下一个逻辑运算符才能求出表达式的值时,才执行该运算符。,非0,0,0,0,非0,非0,1,0,例:a=1 b=2 c=3 d=4 m=1 n=1(m=ab)&(n=cd)该逻辑表达式的值为:,0,该逻辑表达式执行结束后m的值为:,0,该逻辑表达式执行结束后n的值为:,1,5.3 if 语句,

4、5.3.1 if语句的三种形式,2if(表达式)语句1;else 语句2;,1if(表达式)语句;,例:if(xy)printf(%d,x);,例:if(xy)printf(%d,x);else printf(%d,y);,例:编程,判断任意输入一个整数x是不是正数,若是则将该数输出。程序如下:main()int x;scanf(“%d”,例:编程,判断任意输入的一个正整数是不是偶数,若是则输出YES,否则输出NO。程序如下:main()int x;scanf(“%d”,3 if(表达式1)语句1;else if(表达式2)语句2;else if(表达式m)语句m;else 语句n;,说明:i

5、f后面的(表达式)一般为逻辑表达式或关系表达式,系统对表达式的值进行判断,若为0按“假”处理,若为非0,按“真”处理。因此,表达式的类型不限于逻辑表达式,可以是任意的数值类型(包括整型,实型,字符型,指针型数据)。如:if(3)printf(“O.K.”);是合法的。if(A)printf(“%d”,a);也是合法的。,后面两种形式的if语句中,每个else前面有一个分 号,不要错认为是两个语句。,if 和else后面有多个语句时,可以使用复合语句,即用“”将多个 语句括起来。,例:if(a+bc,例输入一个数,若大于零则输出。,main()float a;scanf(%f,main()flo

6、at a,b,t;scanf(%f,%f,a,b,t,方法1:,例输入两个实数,按由小到大次序输出。,方法2:,main()float a,b;scanf(%f,%f,例输入三个数,按由小到大顺序输出。,main()float a,b,c,t;scanf(%f,%f,%f,34,12,34,17,34,34,5.3.2 if语句的嵌套 在 if 语句中又包含一个或多个 if 语句称为 if语句的嵌套。其一般形式为:if()if()语句1;else 语句2;else if()语句3;else 语句4;说明:应注意 if 与 else 的对应关系,else总是与它上面最近的 if 配对,若if与

7、else 的数目不一致,可以加 来确定配对关系。,内嵌 if 语句,内嵌 if 语句,main()int x,y;scanf(%d,if(x0)y=-1;else if(x=0)y=0;else y=1;,y=-1;if(x!=0)if(x0)y=1;else y=0;,y=0;if(x=0)if(x0)y=1;else y=-1;,5.3.3 条件运算符1.一般形式:表达式1?表达式2:表达式32.执行过程:如果表达式1为真,则条件表达式取表达式2的值,否则取表达式3的值。,取表达式 2 的值,if(ab)max=a;else max=b;,max=(ab)?a:b;,说明:条件运算符是C中

8、唯一的一个三目运算符。条件运算符优先于赋值运算符。条件运算符的结合方向为“右结合”。例:ab?a:cd?c:d 相当于 ab?a:(cd?c:d)条件运算符不能取代一般的if语句,只有在if语 句中内嵌的语句为赋值语句且两个分支都给同一 个变量赋值时才能代替 if 语句。表达式 1、2、3可以是任意类型的。(字符型,整型、实型),如:x?a:b x为整型变量 xy?1:1.5结果为实型,条件表达式中,表达式1的类型可以与表达式2和表达式3的类型不同。表达式2和表达式3的类型也可以不同,此时条件表达式的值的类型为二者中较高的类型。,例:输入一个字符,判断它是否为大写字母,如果是,将它转换成小写字

9、母,如果不是,不转换。然后输出最后得到的字符。程序如下:,main()char ch;scanf(%c,5.4 switch语句,二说明:(1)switch后面括弧内的“表达式”,可以是任意类型的表达式。(2)当表达式的值与某一个 case 后面的常量表达式 的值相等时,就执行此 case 后面的语句,若所有的 case 中的常量表达式的值都没有与表达式的值匹配的,就执行 default后面的语句。(3)每一个 case 的常量表达式的值必须互不相同,否则就会出现互相矛盾的现象。(4)各个 case 的出现次序不影响执行结果。,(5)多个case可以供用一组执行语句。如:,case A:cas

10、e B:case C:printf(60n);,(6)执行完一个 case 后面的语句后,流程控制转移到下一个 case 继续执行。“case常量表达式”只是起语句标号的作用,并不是在该处进行条件判断。,若grade=A,则将输出:85100 7084 6069 60 error,switch(grade)case A:printf(85100n);case B:printf(7084n);case C:printf(6069n);case D:printf(60n);default:printf(errorn);,break;,break;,break;,break;,若grade=A,则输

11、出结果为:85100,break语句可以使流程跳出switch结构,继续执行switch语句下面的语句。,5.5 程序举例,例任给三角形的三边,判断该三角形是等边、等腰、直角或一般。,分析:用变量a,b,c表示三角形三条边的长,#include math.h main()int a,b,c;scanf(%d%d%d,例.写程序,判断某一年是否闰年。,闰年的条件是符合下面二者之一:1.能被4整除,但不能被100整除;2.能被4整除,又能被400整除。,main()int year,leap;scanf(%d,方法1:if 语句的嵌套,if(leap)printf(%d is,year);else

12、 printf(%d is not,year);printf(a leap year.n);,方法2:if 语句的第三种形式,main()int year,leap;scanf(%d,if(leap)printf(%d is,year);else printf(%d is not,year);printf(a leap year.n);,例:求 方程的解,有以下几种可能:,1.,不是二次方程。否则,2.,有两个相等实根。,3.,有两个不等实根。,4.,有两个共轭复根。,#include math.hmain()float a,b,c,disc,x1,x2,p,q;scanf(%f,f,%f,e

13、lse p=-b/(2*a);q=fabs(sqrt(-disc)/(2*a);printf(%8.4f+%8.4f i n,p,q);printf(%8.4f-%8.4f i n,p,q);,例.给一百分制成绩,要求输出成绩等级A,B,C,D,E。90分以上为A,80-89分为B,70-79分为C,60-69分为D,60分以下为E。,根据score确定分数段temp,grade=A,grade=B,grade=C,grade=E,grade=D,0,8,7,6,5,4,3,2,1,9,读入学生成绩score,score100,Y,N,输出grade,输入数据有误,结束,main()int score,temp;char grade;scanf(%d,case 6:grade=D;break;case 5:case 4:case 3:case 2:case 1:case 0:grade=E;printf(%d,%cn,score,grade);,switch(temp)case 9:grade=A;break;case 8:grade=B;break;case 7:grade=C;break;,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号