第四章选择结构程序设计.ppt
《第四章选择结构程序设计.ppt》由会员分享,可在线阅读,更多相关《第四章选择结构程序设计.ppt(55页珍藏版)》请在课桌文档上搜索。
1、第四章 选择结构程序设计,2023年3月30日7时3分,选择结构程序概述,选择结构程序,又称为分支结构程序。它是三大基本结构之一。在这种结构程序中,一定会包含条件语句。计算机根据所指定条件是否满足,决定从给定的两组或多组操作中选择执行。,2023年3月30日7时3分,条件选择控制语句,if语句(else 语句)switch语句goto语句,2023年3月30日7时3分,条件表达式,关系与逻辑运算操作符,关系运算符=!=,逻辑运算符!&|,2023年3月30日7时3分,条件选择控制语句,1、if 语句(单分支语句),if(条件表达式)语句;,if(条件表达式)语句块,或,2023年3月30日7时
2、3分,例如:如果x0,输出x。if(x0)printf(x=%f,x);(2)如果a等于b,输出a=b。if(a=b)printf(%s,a=b);,2023年3月30日7时3分,例如:如果x0,求x的平方根。(1)将结果放入变量y 中;(2)输出x的平方根y。,不管选择体多么复杂,包含多少条语句,if语句逻辑上是一条语句,后面的双分支if语句、多分支if语句、switch语句、循环语句均是逻辑上的一条语句。,if(x0)y=sqrt(x);printf(平方根=%f,y);,2023年3月30日7时3分,计算y,(提示:x等于1时,函数无定义。),#includevoid main()flo
3、at x,y;printf(请输入x:);scanf(%f,例1:,请输入x:1.2 运行结果为:x=1.20,y=11.00,2023年3月30日7时3分,2、if-else 语句(Two-way selection statement),例:#include void main()int x;scanf(“%d”,if(条件表达式)语句1;(语句块1)else 语句2;(语句块2),2023年3月30日7时3分,例:求两个数x、y的最大值max。,用条件表达式表示为:(xy)?(max=x):(max=y);,用条件表达式表示为:(i%2=0)?Printf(“偶数n”):printf(“
4、奇数n”);,if(xy)max=x;else max=y;,例:判断整数i 的奇偶性。,if(i%2=0)printf(偶数n);else printf(奇数n);,2023年3月30日7时3分,说明:(1)双分支if语句形式上相当于单分支if语句扩展else分支而来,else分支称为else子句,else子句不能单独存在。(2)在其它高级语言中特别强调else子句前不能有分号,C语言中else子句前必有分号。(3)选择体如为多条语句同样必须采用复合语句。,2023年3月30日7时3分,例2:,#includevoid main()float x,y;printf(请输入x:);scanf(
5、%f,计算y的值:,2023年3月30日7时3分,从键盘接收两个数,求两个数中的最大值、最小值。,数据分析:输入量:两个数x、y,float型 输出量:最大值max、最小值min,float型算法分析:输入两个数x、y 比较两个数x、y 大小 如果xy,max=x,min=y 如果xy,max=y,min=x 输出最大值max、最小值min,例3:,2023年3月30日7时3分,#includevoid main()float x,y;float max,min;printf(请输入两个数x,y:);scanf(%f,%f,请输入两个数x,y:1.2,2.54运行结果:max=2.54,min
6、=1.20,2023年3月30日7时3分,#includevoid main()float x,y;printf(请输入两个数x,y:);scanf(%f,%f,请输入两个数x,y:1.2,2.54 运行结果:max=2.54,min=1.20,2023年3月30日7时3分,If语句的嵌套,格式:,在if语句中又包含一个或多个if语句称为if语句的嵌套。,if()if()语句1 else 语句2 else 语句3,if()语句1else if()语句2 else 语句3,if()if()语句1 else 语句2 else if()语句3 else 语句4,2023年3月30日7时3分,注意:i
7、f与else的配对关系,if()if()语句1 else if()语句2 else 语句3,这种表达与原意不符:else总是与上边最近的if配对,因此,把“if()语句1”加上“”才能实现原意,即 if()语句1。,2023年3月30日7时3分,程序段1:int x=20;if(x=0)if(x=0 且 x=0 且 x=50*/,分析下面两个程序段的输出结果,程序段2:int x=20;if(x=0)if(x 50)/*该 if 不可见*/printf(“x is okn”);else printf(“x is not okn”);,2023年3月30日7时3分,#includevoid ma
8、in()float x;float y;printf(请输入x:);scanf(%f,例4:,计算y的值:,2023年3月30日7时3分,例5 将百分制成绩转成五级记分(A、B、C、D、E)。,if(cj=90)ch=A;else if(cj=80)ch=B;else if(cj=70)ch=C;else if(cj=60)ch=D;else ch=E;,2023年3月30日7时3分,多分支if语句可用多条单分支、双分支if 语句等价实现。,例如:例 4 用单分支if语句处理:if(x0)y=1;例 5 用单分支if语句处理:if(cj=90)ch=A;if(cj=80,2023年3月30日7
9、时3分,3.多分支选择switch语句,语句格式:switch(表达式)case 常量表达式1:语句组1;case 常量表达式2:语句组2;case 常量表达式n:语句组n;default:语句组n+1;,2023年3月30日7时3分,(1)case后可以是常量表达式,常量表达式的值必须互不相同,否则会出现二义性。(2)常量表达式可以是任何类型,一般为整型、字符型等。(3)每个case 和default的出现次序不影响执行结果。(4)case 只起语句标号作用,不进行条件的判断。执行完一个case后面的语句,接着执行下一个case。(5)一种情况处理完后,一般应使程序的执行流程跳出switch
10、结构,终止switch语句的执行,这可借助break语句完成。,说明:,2023年3月30日7时3分,(6)最后一种情况处理中可以不加break语句。(7)当多个常量代表一种情况时,出现在前面case中的情况处理无语 句,这实际上也是多个case共用一组执行语句。(8)可以没有default子句。,2023年3月30日7时3分,Break语句的使用,break语句形式为:break;,一般使用了break语句的switch语句形式为:,switch(选择表达式)case 常量1:语句体1 break;case 常量2:语句体2 break;case 常量n:语句体n break;default
11、:语句体n+1,2023年3月30日7时3分,90100分 A 8089分 B 7079分 C 6069分 D 59分以下 E,switch语句描述的是多分支选择的一种特殊情况,可用if语句等价实现。如例5:将百分制成绩转成五级记分(A、B、C、D、E)。,注意选择表达式的构造:,int grade;scanf(“%d”,2023年3月30日7时3分,#include void main()char grade;int score;printf(“please input a score:”);scanf(“%d”,例6:根据分数给出考试成绩的等级,2023年3月30日7时3分,例7:根据考试
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第四 选择 结构 程序设计
![提示](https://www.desk33.com/images/bang_tan.gif)
链接地址:https://www.desk33.com/p-259774.html