程序设计基础ch3.ppt_第1页
程序设计基础ch3.ppt_第2页
程序设计基础ch3.ppt_第3页
程序设计基础ch3.ppt_第4页
程序设计基础ch3.ppt_第5页
免费预览已结束,剩余21页可下载查看

下载本文档

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

文档简介

1、2020/6/16,程序设计基础张杰敏,1,第3章控制流,学习目标建立结构化程序设计的概念应用各种选择和循环语句,实现选择和循环结构通过顺序、选择和循环实现结构化程序设计正确使用break、continue等语句认识goto语句对结构化程序设计的影响学习分析问题的方法,并通过算法解决问题,2020/6/16,程序设计基础张杰敏,2,程序中的语句通常是按照次序一条接一条地顺序执行,称之为顺序结构。顺序结构是绝大多数程序设计语言的基本框架,程序设计语言的各种语句在基本框架下组成程序或程序的集合。有时需要改变顺序执行的流程,以有选择地执行程序的不同部分,构造选择结构;或者重复执行程序的某一部分,构造

2、循环结构。程序设计语言中选择和循环机制的设置,使得程序的计算足够灵活和有效。,3.1程序的结构化设计,2020/6/16,程序设计基础张杰敏,3,Boehm和Jacopini的研究工作证明,任何程序都可依靠三种基本结构的组合实现,它们就是顺序结构、选择结构和循环结构。选择结构又称分支结构。由这三种基本结构组成的程序称为结构化程序,3.1程序的结构化设计,2020/6/16,程序设计基础张杰敏,4,程序包含两方面内容:1数据描述:定义数据类型及数据结构2操作描述:说明操作及操作步骤,即算法。,3.1程序的结构化设计,2020/6/16,程序设计基础张杰敏,5,3.2语句与复合语句,在C语言中,每

3、一个语句必需以“;”结束,它是语句终结符支持信息和示例C语句分为5类:表达式语句、控制流语句、函数调用语句、空语句和复合语句一对花括号把一组说明和语句组合在一起就构成一个复合语句,在语法上等价于单个语句,复合语句结束时,右花括弧“”之外不能有“;”空语句只有一个“;”,在if、for或while、do这样的控制流语句中常会发生,2020/6/16,程序设计基础张杰敏,6,3.3if-else选择语句,分支结构(选择结构)实现不同动作间的选择if语句的一般语法形式如下:if(表达式)语句1else语句2,else是可选的,缺省else部分,形成单分支结构,语句可以是单语句或复合语句,意味着可以嵌

4、套ifelse,2020/6/16,程序设计基础张杰敏,7,3.3if-else选择语句,执行if语句时,首先计算表达式的值,如果表达式的值非0、即其值为真,执行语句1;如果表达式的值为0、即其值为假,执行语句2。,2020/6/16,程序设计基础张杰敏,8,【例3-2】在一次百分制测验中设定:当一名学生的成绩大于、等于60分时,为“Passed”。成绩小于60分时,为“Failed”。成绩大于100分、或者小于0分时,视为“Error”成绩。voidmain()intgrade;printf(Inputgrade(0-100):);scanf(%d,2020/6/16,程序设计基础张杰敏,9

5、,运行结果:,2020/6/16,程序设计基础张杰敏,10,在C程序中经常使用如下语句结构:if(表达式1)语句1elseif(表达式2)语句2elseif(表达式3)语句3elseif(表达式n)语句nelse语句n+1这种嵌套的if-elae语句构成的序列可用于处理多向选择的问题。各个表达式依次求值,一旦某个表达式为“真”,就执行与之相关的语句,从而终止整个语句序列的执行。如果所有表达式值为“假”,就执行最后一个else的语句n+1。,2020/6/16,程序设计基础张杰敏,11,3.4switch多分支语句,switch语句是一种多分支选择语句,常用来实现多分支的程序结构。其一般语法形式

6、为:switch(表达式)case常量表达式1:语句序列1case常量表达式2:语句序列2case常量表达式n:语句序列ndefault:语句序列n+1,case标号是唯一的,default部分是任选的,2020/6/16,程序设计基础张杰敏,12,【例3-7】按照学生考试成绩的等级打印出百分制分数段。#includevoidmain()chargrade;printf(Inputgrade(AD,F):);scanf(%c,2020/6/16,程序设计基础张杰敏,13,运行结果:,2020/6/16,程序设计基础张杰敏,14,良好习惯:为了使控制流程跳出switch结构,可以使用break语

7、句,最后一个分支default部分可以不加break语句例成绩分级:switch(grade)caseA:printf(“90100n”);break;caseB:printf(“8089n”);break;caseC:printf(“7079n”);break;caseD:printf(“6069n”);break;caseF:printf(“60n”);break;default:printf(“errorn”);break;,2020/6/16,程序设计基础张杰敏,15,3.5while与for循环语句,实现行为的重复是我们使用计算机的一个重要原因C语言的while、for和dowhil

8、e语句都提供实现行为重复的功能,称为循环语句While循环语句的一般语法形式为:while(表达式)语句while语句的特点是:先判断表达式,后执行语句对程序合理的精简可以节省空间、提高运行效率。但任何情况下都不应为了精简程序而以损失程序的可读性为代价,程序的可读性在任何时候都至关重要,首先求表达式的值。值不等于0,执行while的内嵌语句;之后再次求该表达式的值,直到值变为0,此时程序从while语句的下一个语句接着执行,2020/6/16,程序设计基础张杰敏,16,3.5while与for循环语句,while语句的一般语法形式为:while(表达式)语句while为逻辑控制循环语句,通过测

9、试表达式的布尔值决定重复执行循环体与否。while的循环体即while的语句部分。while执行时,首先求表达式的值。如果其值不等于0(布尔“真”),那么执行while的循环体。之后,再次求该表达式的值。这一周期性过程一直重复进行,直到该表达式的值变为0(布尔“假”)。此时程序的控制流程转向while语句的下一条语句接着执行。while语句的特点是:先测试表达式值,后执行循环体。其循环体可被重复执行0次、1次或多次。,2020/6/16,程序设计基础张杰敏,17,【例3-8】参加某次百分制测验的学生为10名,测验结果设定:当学生的成绩大于、等于60分时,为“Passed”。成绩小于60分时,为

10、“Failed”。成绩大于100分、或者小于0分时,视为“Error”成绩。#include#defineN10voidmain()intgrade,n=N;while(n-)printf(Inputgrade(0-100):);scanf(%d,2020/6/16,程序设计基础张杰敏,18,运行结果:,2020/6/16,程序设计基础张杰敏,19,for语句是while语句的扩展,一般语法形式为:for(表达式1;表达式2;表达式3)语句for语句的执行流程为:计算表达式1的值;计算表达式2的值,若表达式2的值非0(真),那么执行for的内嵌语句,计算表达式3的值。若表达式2的值为0,结束f

11、or循环,执行for语句的下一条语句。返回到步骤for循环语句也是先测试循环条件,再执行循环体应避免陷入无限循环break语句可用于从while、for和do.while循环语句中立即强制性退出,for语句的三个表达式中任何一个都可以省略,但分号必须保留,2020/6/16,程序设计基础张杰敏,20,【例3-12】for语句实现字符计数。#include/*统计输入的字符数;第2个版本*/voidmain()doublenc;/*说明double型变量nc,用于存放计数值*/for(nc=0;getchar()!=EOF;+nc);printf(%.0fn,nc);,2020/6/16,程序设

12、计基础张杰敏,21,运行结果:,2020/6/16,程序设计基础张杰敏,22,3.6do-while循环语句,do-while循环语句的一般语法形式:do语句while(表达式)如果表达式的值为真,那么就再次执行语句,当表达式的值变成假时,就终止循环的执行do-while循环语句则是先执行循环体,再测试循环终止条件,因此至少要被执行一次如果循环语句的内嵌语句包含另一个循环语句,就形成多重循环结构,称为循环的嵌套。演示,可以是任何语句,包括复合语句,2020/6/16,程序设计基础张杰敏,23,3.6goto语句,C语言提供了goto语句,它跳转的语句位置由标号标记标号是一个标识符,其后要跟一个

13、冒号,命名标号时应尽量区别于变量标号可以用在任何语句的前面,但要与相应的goto语句位于同一函数中多数现代的编程方法都认为goto语句是不良结构,比如在结构化程序设计中就不允许使用goto语句,2020/6/16,程序设计基础张杰敏,24,3.7break语句与continue语句,break语句可以立即终止switch语句的执行,将控制流程转移到switch的下一条语句一样break语句可用于从for、while与do-while语句中提前退出来break语句不能用于循环语句或switch语句之外的任何其它语句continue语句用于使其所在的for、while或do-while语句结束本次循环,开始下一次循环continue语句只能用于循环语句,不能用于switch语句使用得当,continue语句有时可以简化循环中某些复杂部分的处理,2020/6/16,程序设计基础张杰敏,25,3.8编程指导,程序中反映了控制流的花括弧的位置非常重要,是良好编程习惯的重要体现,如果循环体是单语句,

温馨提示

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

评论

0/150

提交评论