第4章流程控制.ppt
《第4章流程控制.ppt》由会员分享,可在线阅读,更多相关《第4章流程控制.ppt(61页珍藏版)》请在课桌文档上搜索。
1、,C语言程序设计(The C Programming Language),第四章 流程控制,4-1 结构化程序设计4-2 C语句概述4-3 选择语句4-4 循环语句4-5 辅助控制语句4-6 习题,第四章 流程控制,结构化程序设计思想算法传统流程图表示的三种结构N/S方框图表示的三种结构小结,4-1 结构化程序设计,4.1.1 结构化程序设计思想任何程序都可以用三种基本结构表示,即用顺序(Composition)、选择(Alternation)和循环(Iteration)结构来表示。这三种结构反复组合、嵌套构成的程序称为结构化程序。顺序结构的程序流程是按照语句的顺序依次执行;选择结构是根据给定
2、的条件进行判断,由判断结构决定执行两支或多支程序段中的一支;循环结构是在给定条件成立的情况下,反复执行某个程序段。优点结构化程序层次分明、结构清晰、有效地改善了程序的可靠性,从而大大地提高了程序设计的质量和效率。,4-1 概述,4-1 结构化程序设计,自顶向下,逐步求精,4.1.2 算法“算法”是为解决一个具体问题而采取的确定的有限的操作步骤。(数据结构)(算法)程序 NWirth 算法的表示方法:传统的流程图N/S方框图自然语言伪码问题求解图(PAD),4-1 结构化程序设计,4.1.3 传统流程图表示的三种结构,4-1 结构化程序设计,4.1.3 传统流程图表示的三种结构顺序结构(Comp
3、osition),4-1 结构化程序设计,4.1.3 传统流程图表示的三种结构 选择结构(Alternation),4-1 结构化程序设计,4.1.3 传统流程图表示的三种结构循环结构(Iteration),(1)当型,(2)直到型,4-1 结构化程序设计,实例1:计算1+2+3+100的值,4-1 结构化程序设计,这是一款意大利生产的多功能厨具|请猜价格!,600,答案是:720,低了!,800,750,700,高了!,高了!,正确!,这是一款瑞士生产的多功能刀具|请猜价格!,600,高了!,500,高了!,时间到!1个商标,720,低了!,答案是:428,4-1 结构化程序设计,实例2:幸
4、运52,“幸运52”的传统流程图,传统流程图的优缺点优点:形象直观,各种操作一目了然,不会产生“歧义性”,便于理解,算法出错时容易发现,并可直接转化为程序。缺点:所占篇幅较大,由于使用流程线,过于灵活,不受约束,使用者可使流程线任意转移,从而造成程序阅读和修改的困难,不利于结构化程序的设计。,4-1 结构化程序设计,4.1.4 N/S方框图N/S方框图是由美国学者INassi和BSchneiderman 于1973年提出的。N/S方框图的重要特点就是完全取消了流程线,这样,算法被迫只能顺序执行,从而避免了流程的任意转向,保证了程序的质量。尤其适合结构化程序的设计。N/S方框图的另一个优点是既形
5、象直观,又节省篇幅。,4-1 结构化程序设计,4-1 结构化程序设计,4.1.4 N/S方框图顺序结构(Composition),4-1 结构化程序设计,4.1.4 N/S方框图选择结构(Alternation),4-1 结构化程序设计,4.1.4 N/S方框图循环结构(Iteration),(1)当型,(2)直到型,实例1的N/S方框图,4-1 结构化程序设计,表达式语句 表达式;赋值语句 i=10;函数调用语句 printf(Hello!n);流程控制语句 选择 ifelse,elseif,switchcase 循环 for,while,dowhile 辅助控制 break,continu
6、e,goto,return 空语句;什么也不干 for(i=1;i5000;i+);延时 for(i=0;i100;ai+=0);语法要求 复合语句 多个简单句 语法上等同于一个简单语句 可以嵌套使用 分程序,数据说明一定要在所有执行语句之前。,4-2 C语句概述,4-3 选择语句,输入三个数,按从小到大输出main()float a,b,c,t;scanf(%f%f%f,4.3.1 if 语句 格式:if(表达式)语句;说明:一般语言,if 后是关系或逻辑表达式,而C无要求 if 只是测试表达式的值,当表达式的值为非0时,执行语句 if(表达式)if(表达式!=0)if(!表达式)if(表达
7、式=0)“语句”为一条语句或复合语句,4-3 选择语句,4.3.2 ifelse 语句 格式:if(表达式)语句1;else 语句2;说明:表达式仍为一般表达式,当表达式非0时,执行语句1,否则,执行语句2“语句1”、“语句2”均为一条语句或复合语句,4-3 选择语句,根据需要交换两个变量的值#include main()int a,b,x,ch;printf(Enter two integers:);scanf(%d%d,加上就行了!if(n0)if(ab)z=a;else z=b;,4-3 选择语句,要想在n=0时执行z=b;怎么办呢?,给你出个难题?现有程序段if(n0)if(ab)z=
8、a;else z=b;什么时候执行z=b;?,太简单了!else总是与其上最近的且未与其他else配对的if 配对,因此n0并且a=b时执行z=b;,4.3.3 分支嵌套else 总与其上最近的且未与其他else配对的if 配对 要想与其他if匹配加书写形式不能代替逻辑关系,4-3 选择语句,4.3.4 else-if 语句 格式:if(表达式1)语句1;else if(表达式2)语句2;.else if(表达式n)语句n;else 语句n+1;功能:逐个判断表达式的值,对首次为真者执行其后的语句,然后继续执行n+1条语句后的语句,全不为真时执行else 后的语句。,main()int mag
9、ic=200,guess;printf(“Please guess a magic number:”);scanf(%d,4-3 选择语句,main()int magic=200,guess;printf(“Please guess a magic number:”);scanf(%d,猜数数游戏:由计算机“想”一个数请人猜,若猜对了则给出提示“Right”,否则提示“Wrong”,并告诉人是大还是小了?,4-3 选择语句,输入学号及成绩,并根据成绩定等级main()int score,snum;char grade;scanf(%d%d,4-3 选择语句,4.3.5 开关分支switchca
10、se 格式:switch(表达式)case 值1:语句组1;break;case 值2:语句组2;break;.case 值n:语句组 n;break;default:语句组n+1;break;功能:根据表达式的值与各个case判断值的比较情况决定执行哪个语句组。,4-3 选择语句,4.3.5 开关分支switchcase 注意:表达式的值可为任意类型,但一般为整型或字符型数据,判断值的类型与其要一致case判断值必须为常量或常量表达式,且判断值必须互不相同default缺省时,当所有case判断不符时,则直接自动退出 switch当break语句不缺省时,case和default的顺序可以任
11、意break语句缺省时,系统将继续执行下一条case 语句组,可以使用case 重叠 共用一个语句组,4-3 选择语句,运输公司计算运费的原则是距离越远,每公里收费越低 s=3000 15%p-单价 w-重量 d-折扣 f 运费 p*W*S*(1-d)main()int s;float p,w,d,f;scanf(%f%f%d,4-3 选择语句,统计输入的一行字符中的英文各元音字母的个数(不区分大小写)#include main()int na,ne,ni,no,nu;char c;na=ne=ni=no=nu=0;while(c=getchar()!=n)switch(c)case A:ca
12、se a:na+;break;case E:case e:ne+;break;case I:case i:ni+;break;case O:case o:no+;break;case U:case u:nu+;break;printf(na=%d,ne=%d,ni=%d,no=%d,nu=%dn,na,ne,ni,no,nu);,4-3 选择语句,输入学号及成绩,并根据成绩定等级main()int score,snum;char grade;scanf(%d%d,4-4 循环语句,循环就是反复执行一段程序,被反复执行的程序段称为循环体。循环必须能结束,通常需要循环变量来控制循环。,4.4.1
13、while语句 当型 格式:while(表达式)循环体语句;说明:进入循环前要作初始化工作循环体中应有使条件向假方向变化的语句表达式为常数(非O)是无限循环,需配合其他语句加以控制循环体可以是空语句,4-4 循环语句,4-4 循环语句,计算1+2+3+100的值main()int sum=0,i=1;while(i=100)sum+=i+;/*sum+=i;i+;*/printf(“sum of 1-100 is:%dn”,sum);求个位数为6且能被3整除的5位数共有多少个?main()int i=0;long m=10006;while(m=99996l)if(m%3=0)/*if(m/3
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 流程 控制
链接地址:https://www.desk33.com/p-740707.html