程序的三种基本结构.ppt_第1页
程序的三种基本结构.ppt_第2页
程序的三种基本结构.ppt_第3页
程序的三种基本结构.ppt_第4页
程序的三种基本结构.ppt_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、结构化程序设计 基本思想:任何程序都可以用三种基本结构表示,限制使用无条件转移语句(goto) 结构化程序:由三种基本结构反复嵌套构成的程序叫 优点:结构清晰,易读,提高程序设计质量和效率 三种基本结构 顺序结构,程序的三种基本结构,二分支选择结构,多分支选择结构,选择结构,当型循环结构,直到型循环结构,注:A,B,A1.An可以是一个简单语句,也可以是一个基本结构,循环结构,返回,第5章 选择语句,5.1 if 条件语句 5.2 switch多分支选择语句 5.3 程序举例,5.1 if条件语句 if语句是用来判定所给定的条件是否满足,根据判定的结果(真或假)决定执行给出的两种操作之一。 5

2、.1.1 if语句的三种形式 1单分支选择语句的形式: if(表达式) 语句 这种if语句的执行过程见图:,main( ) float x , y; scanf(“%f ”, ,任给a,b,c三个数,按从小到大的顺序输出。 分析: (1)对于a,b任意两个数: 若ab,则交换a和b,交换后ac,则交换a和c,交换后ac,则交换b和c,交换后bc,例52输入三个数,按由小到大顺序输出。 main( ) int a,b,c,temp; printf(Input a,b,c:n); scanf(%d,%d,%d, 运行情况如下: 3,7,1 1, 3, 7,2双分支选择语句的形式: if(表达式)

3、语句1 else 语句2 见图:,main() float x , y; scanf(“%f ”, ,输入两个数, 比较其大小, 将较大的数输出。,流程分析: (1) 输入两个数据a,b ; (2) 如果ab 则输出a ;否则,输出b。 #include main( ) float a, b; scanf(“%f, %f”, ,3多分支选择语句的形式: if (表达式1) 语句1 else if (表达式2) 语句2 else if(表达式3) 语句3 else if (表达式m) 语句m else 语句n 流程图,写一个程序完成下列功能: 1. 输入一个分数score 2 .score60

4、输出 E 3 .60=score 70 输出 D 4. 70=score 80 输出 C 5 .80=score 90 输出 B 6 .90=score 输出 A,多分支问题,#include main( ) int score; scanf(“%d”, ,程序,如:if(a=b,if后面的表达式类型任意,语句可以是复合语句 if(x) if(x!=0) if(!x) if(x=0),例 考虑下面程序的输出结果: #include main() int x,y; scanf(“%d,%d”, ,Compile Error!,说明:,5.1.2 一般形式:,if语句嵌套,/*ch4_4.c*/

5、#include main() int x,y; printf(Enter integer x,y:); scanf(%d,%d, ,运行:Enter integer x,y:12,23 XY Enter integer x,y:12,12 X=Y,例 输入两数并判断其大小关系,缺省 时,else总是和它上面离它最近的未配对的if配对,if else 配对原则:,例: if (a=b) if(b=c) printf(“a=b=c”); else printf(“a!=b”);,修改: if (a=b) if(b=c) printf(“a=b=c”); else printf(“a!=b”);,

6、实现if else 正确配对方法:加 ,实现if else 正确配对方法,5.2 switch语句 switch语句是多分支选择语句。if语句只有两个分支可供选择,而实际问题中常常需要用到多分支的选择。例如,学生成绩分类(90分以为A等,8089分为B等,7079分为c 等,);人口统计分类(按年龄分为老、中、青、少、儿童);工资统计分类;银行存款分类;等。当然这些都可以用嵌套的if语句或多分支来处理,但如果分支较多,则嵌套的if语句层数多,程序冗长而且可读性降低。C语言提供switch语句直接处理多分支选择,它的一般形式如下: switch (表达式) case 常量表达式1:语句1 cas

7、e 常量表达式2:语句2 case 常量表达式i:语句n default :语句n+1 ,首先计算表达式的值,然后依次与常量表达式 i(i=1,2,n)比较。 若表达式的值与某一个常量表达式, 如 j (1 j n)相等,则执行语句 j。 若表达式的值与所有的常量表达式 i(i=1,2,n)均不相等,则执行defau1t后面的语句 n+1。,功能,语句中的表达式可以是整型或字符型、枚举型。常量表达式 i 必须与表达式类型一致(整型与字符型通用)。 i 仅起语句标号作用,不做求值判断。 语句结构中各个case后常量表达式的值必须互不相同;否则执行时将出现矛盾。 各个case的出现次序不影响执行结

8、果。例如,可以先出现caseD:,然后是caseA: default一般出现在所有case之后,也可以出现在case之前或两个case之间,default也可以缺省。 为了在执行完一个case分支后能跳出switch多分支选择语句,可在case分支结束后,插入一个break语句。若有break语句,就从此break语句跳出break所在的当前结构;若无break语句,执行该语句后,流程控制转移到下一个分支: 继续执行这一个分支的语句,一直到最后一个语句执行完。,下一页,注意,switch ( i ) case 1:printf(An); case 3:printf( Cn); case 4:p

9、rintf(Dn); default:printf(En); ,假设i=3时,则会从i=3时做起始语句。运行结果见右图。如果给每条语句加上break这样就只执行一条语句。,CDE,下一页,看下面的例子,运行结果,case 2: printf ( Bn );,如果多种情况需要共用一个执行语句,可用case的常量表达式多种情况列出,最后一种情况后,才放执行的语句。 case后面的语句可以是一条语句,也可以是复合语句,还可以是花括弧括起来的几条语句,还可以是空语句。有多条语句时会顺序执行完所有语句。,下一页,说明,编程:根据输入的学生的成绩判断等级。 当成绩score 90时为 A等; 成绩70score 90 为B等; 成绩60score 70 为C等; 成绩score 60 为D等; (score 为整数)。,分析: 设score为整型数,在score90 的范围内,score可能取100, 99,.,90,利用两个整数相除,结果自动取整的特性 score score/10 90 10, 9 7

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论