程序的控制结构精选PPT.ppt

上传人:石*** 文档编号:50453395 上传时间:2022-10-15 格式:PPT 页数:64 大小:881.50KB
返回 下载 相关 举报
程序的控制结构精选PPT.ppt_第1页
第1页 / 共64页
程序的控制结构精选PPT.ppt_第2页
第2页 / 共64页
点击查看更多>>
资源描述

《程序的控制结构精选PPT.ppt》由会员分享,可在线阅读,更多相关《程序的控制结构精选PPT.ppt(64页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、关于程序的控制关于程序的控制结构构第1页,讲稿共64张,创作于星期二4.1 语句及程序框架句及程序框架4.1.1 4.1.1 语句的基本分类语句的基本分类 语句语句是程序的基本组成部分,一段程序或者一个函数就是由是程序的基本组成部分,一段程序或者一个函数就是由若干语句按照算法规定的逻辑关系组成的。各种表达式都要以若干语句按照算法规定的逻辑关系组成的。各种表达式都要以语句的形式出现在程序中。语句的形式出现在程序中。C C语言中的语句有如下类型:语言中的语句有如下类型:(1)(1)变量定义语句;变量定义语句;(2)(2)表达式语句;表达式语句;(3)(3)复合语句;复合语句;(4)(4)函数调用语

2、句;函数调用语句;(5)(5)控制语句;控制语句;第2页,讲稿共64张,创作于星期二1.1.变量定义语句变量定义语句 语法格式如下:语法格式如下:;其含义是:告诉系统,变量表中列出的一个或多个变量的其含义是:告诉系统,变量表中列出的一个或多个变量的存在,同时要求系统为每个变量分配存储空间,其大小和类存在,同时要求系统为每个变量分配存储空间,其大小和类型与型与 所规定的一致。所规定的一致。变量定义语句不需要与操变量定义语句不需要与操作步骤对应。作步骤对应。例如:例如:char aChar;int total=0;/用于累计素数的总数用于累计素数的总数 int score;double x,y;第

3、3页,讲稿共64张,创作于星期二2.2.表达式语句表达式语句 语法格式如下:语法格式如下:;从上述语法格式可以看出,表达式语句是由前面章节提从上述语法格式可以看出,表达式语句是由前面章节提及的各种表达式及后缀的分号构成。其作用是:一旦表达式及的各种表达式及后缀的分号构成。其作用是:一旦表达式语句被执行时,就要按照表达式的求值顺序计算出表达式的语句被执行时,就要按照表达式的求值顺序计算出表达式的值。值。例如:例如:i+;i+;第4页,讲稿共64张,创作于星期二3.3.复合语句复合语句 语法格式如下:语法格式如下:n 其作用是:告诉编译系统,将多个语句看成是一个整体,在语其作用是:告诉编译系统,将

4、多个语句看成是一个整体,在语法要求上相当于一个语句。因此,在分支和循环结构中经常使法要求上相当于一个语句。因此,在分支和循环结构中经常使用,函数的定义体也是一个复合语句。用,函数的定义体也是一个复合语句。例如:例如:int x,y=20;int x,y=20;x=y+10;x=y+10;printf(“%d;%d”,x,y);printf(“%d;%d”,x,y);第5页,讲稿共64张,创作于星期二4.4.函数调用语句函数调用语句 语法格式如下:语法格式如下:(););函数调用语句的作用是:将执行控制流程转移到与此语函数调用语句的作用是:将执行控制流程转移到与此语句完全匹配的函数定义体的第一条

5、语句处,开始执行;函数句完全匹配的函数定义体的第一条语句处,开始执行;函数体执行结束后,返回到此语句的下一条语句处继续执行。执体执行结束后,返回到此语句的下一条语句处继续执行。执行流程如教材图行流程如教材图4-1.4-1.第6页,讲稿共64张,创作于星期二5.5.控制语句控制语句 就是用于控制程序执行路径的相关语句,可以实现程序的就是用于控制程序执行路径的相关语句,可以实现程序的各种控制结构。语言中包含有九种控制语句。分成三类介各种控制结构。语言中包含有九种控制语句。分成三类介绍如下:绍如下:(1 1)分支语句分支语句:ifif语句、语句、switchswitch语句;语句;(2 2)循环语句

6、循环语句:do-whiledo-while语句、语句、whilewhile语句、语句、forfor语句;语句;(3 3)跳转语句跳转语句:breakbreak语句、语句、continuecontinue语句、语句、gotogoto语句、语句、returnreturn语句。语句。分支和循环语句是程序中经常使用的,灵活熟练掌握其用分支和循环语句是程序中经常使用的,灵活熟练掌握其用法是本章的主要任务,后面会详细讲解。法是本章的主要任务,后面会详细讲解。第7页,讲稿共64张,创作于星期二4.1.2 C4.1.2 C程序框架程序框架 一个一个C C程序由程序由若干源文件若干源文件和和头文件头文件组成,称

7、之为一个工组成,称之为一个工程。头文件包括用户自定义的和系统定义的,这两种都是由程。头文件包括用户自定义的和系统定义的,这两种都是由若干函数及全局量的声明和编译预处理组成,文件名一般是若干函数及全局量的声明和编译预处理组成,文件名一般是*.h.h。系统定义的如。系统定义的如stdio.h,stdlib.h,string.h,math.h,stdio.h,stdlib.h,string.h,math.h,limits.h limits.h等,其内容可以在本地安装有等,其内容可以在本地安装有C C编译器的机器中找编译器的机器中找到。一般在安装路径的包含文件夹内,如:到。一般在安装路径的包含文件夹内

8、,如:Program FilesMicrosoft Visual StudioVC98IncludeProgram FilesMicrosoft Visual StudioVC98Include。第8页,讲稿共64张,创作于星期二4.2 分支分支结构构 分支结构与顺序结构相对应,可以称之为分支结构与顺序结构相对应,可以称之为判断结构判断结构或或选选择结构择结构,也就是有选择地执行某些语句,改变了完全顺序执,也就是有选择地执行某些语句,改变了完全顺序执行的程序结构。在日常生活中的表达方式是:如果行的程序结构。在日常生活中的表达方式是:如果;那;那么么。在计算机领域的基本表达方式是:如果条件成立,

9、则。在计算机领域的基本表达方式是:如果条件成立,则执行操作执行操作1 1;否则条件不成立,则执行操作;否则条件不成立,则执行操作2 2。其中,操作。其中,操作1 1,操作,操作2 2可以是一条或多条语句。可以是一条或多条语句。分支结构包含分支结构包含ifif和和switchswitch两个语句两个语句.第9页,讲稿共64张,创作于星期二4.2.1 if4.2.1 if语句的基本格式语句的基本格式 语法格式如下:语法格式如下:if (if ()复合语句复合语句1 1 else else 复合语句复合语句2 2 if if 语句基本格式的语义是:如果条件表达式的值为真,语句基本格式的语义是:如果条

10、件表达式的值为真,则执行复合语句则执行复合语句1 1,否则,即条件表达式的值不为真,则执,否则,即条件表达式的值不为真,则执行复合语句行复合语句2 2。格式中。格式中“()”)”写法与写法与“(!=0)”!=0)”写法写法等价等价。第10页,讲稿共64张,创作于星期二【例例4.1】任意任意输入两个不同的整数,入两个不同的整数,输出其中出其中较大的一个。大的一个。#includevoid main()c4:int x,y;c5:printf(n Input two numbers:n);c6:scanf(%d%d,&x,&y);c7:if (x y)c8:printf(max=%d n,x);e

11、lse c10:printf(max=%d n,y);return;第11页,讲稿共64张,创作于星期二使用使用ifif语句需要注意如下内容:语句需要注意如下内容:(1)(1)从从if if 关键词开始到复合语句关键词开始到复合语句2 2结束,在语法上就是一条结束,在语法上就是一条语句,虽然其中包含着两个复合语句,这并不矛盾。语句,虽然其中包含着两个复合语句,这并不矛盾。(2)if(2)if语句中的两个复合语句都可以由语句中的两个复合语句都可以由空语句空语句,一个语句或,一个语句或者多个语句构成。仅包含空语句或一个语句时,一对大括号者多个语句构成。仅包含空语句或一个语句时,一对大括号可以可以省

12、略省略。此处增加大括号的好处是可以减少不必要的语法。此处增加大括号的好处是可以减少不必要的语法错误。错误。(3)if(3)if语句中的条件表达式必需使用一对匹配的圆括号括起语句中的条件表达式必需使用一对匹配的圆括号括起来。来。(4)(4)条件表达式条件表达式可以是逻辑表达式,关系表达式,算术表达可以是逻辑表达式,关系表达式,算术表达式及赋值表达式等式及赋值表达式等,单个变量构成的表达式也是正确的。只单个变量构成的表达式也是正确的。只要表达式的值不是要表达式的值不是0 0值,条件即为成立。值,条件即为成立。第12页,讲稿共64张,创作于星期二【例例4.24.2】判断某年份是否是闰年。判断某年份是

13、否是闰年。满足以下两个条件之一的年份均是闰年:一是年份能够被满足以下两个条件之一的年份均是闰年:一是年份能够被4 4整除,但不能被整除,但不能被100100整除;二是能被整除;二是能被400400整除的年份。整除的年份。第13页,讲稿共64张,创作于星期二4.2.2 if4.2.2 if语句的第二种格式语句的第二种格式 语法格式如下:语法格式如下:if (if ()复合语句复合语句 if if 语句第二种格式的语义是:如果条件表达式的值不为语句第二种格式的语义是:如果条件表达式的值不为真,则直接执行此真,则直接执行此ifif语句的下一条语句,否则,条件表达式语句的下一条语句,否则,条件表达式的

14、值为真,则执行其后的复合语句,复合语句执行完成后同的值为真,则执行其后的复合语句,复合语句执行完成后同样要执行样要执行ifif语句的下一条语句。语句的下一条语句。第14页,讲稿共64张,创作于星期二【例例4.34.3】任意输入两个不同的整数,输出其中较大的一个。任意输入两个不同的整数,输出其中较大的一个。#include void main()c4:int x,y,max;c5:printf(n Input two numbers:n);c6:scanf(%d%d,&x,&y);c7:max=x;c8:if (y x)c9:max=y;c10:printf(max=%d n,max);c11:

15、return;第15页,讲稿共64张,创作于星期二4.2.3 if4.2.3 if语句的嵌套形式语句的嵌套形式可以写出如下几种嵌套形式的可以写出如下几种嵌套形式的ifif语句:语句:(1 1)在第二种格式的复合语句处嵌套第二种格式,形如:)在第二种格式的复合语句处嵌套第二种格式,形如:if (if ()1)其它语句其它语句1 1 if (if ()2)复合语句复合语句2 2 其它语句其它语句2 2 第16页,讲稿共64张,创作于星期二(2 2)第二种格式嵌套第一种格式,形如:第二种格式嵌套第一种格式,形如:if (if ()1)if (if ()2)复合语句复合语句2121 else else

16、 复合语句复合语句2222 第17页,讲稿共64张,创作于星期二(3 3)第一种格式嵌套第二种格式,形如:第一种格式嵌套第二种格式,形如:if (if ()1)if (if ()2)复合语句复合语句2 2 else else if (if ()3)复合语句复合语句3 3 第18页,讲稿共64张,创作于星期二(4 4)第一种格式嵌套第一种格式,形如:第一种格式嵌套第一种格式,形如:if (if ()1)if (if ()2)复合语句复合语句2121 else else 复合语句复合语句2222 else else if (if ()3)复合语句复合语句3131 else else 复合语句复合语

17、句3232 第19页,讲稿共64张,创作于星期二【例例4.44.4】要求按任意顺序从键盘输入三个整数,编写程序要求按任意顺序从键盘输入三个整数,编写程序完成输出最大值和最小值的算法。完成输出最大值和最小值的算法。基本思路:首先任取其中两个数,判断最大和最小;使基本思路:首先任取其中两个数,判断最大和最小;使用例用例4.34.3的方法。其次,用第三个数分别与刚刚得到的最大的方法。其次,用第三个数分别与刚刚得到的最大和最小数再次比较,就可以得到三个数中的最大和最小。和最小数再次比较,就可以得到三个数中的最大和最小。第20页,讲稿共64张,创作于星期二4.2.4 if4.2.4 if语句的第三种格式

18、语句的第三种格式其语法格式如下:其语法格式如下:if (if ()1)复合语句复合语句1 1else if else if ()2)复合语句复合语句2 2else if (else if ()3)复合语句复合语句3 3else if (else if ()m)复合语句复合语句m melse else 复合语句复合语句m+1m+1第21页,讲稿共64张,创作于星期二【例例4.5】设计程序完成将百分制成程序完成将百分制成绩转换成五分制表示。成五分制表示。#include void main()char chscore;int nscore;printf(n please input Score(0

19、 100):n);scanf(%d,&nscore);if (nscore 60 )chscore=E;else if (nscore 70)chscore=D;第22页,讲稿共64张,创作于星期二else if (nscore 80)chscore=C;else if (nscore 90)chscore=B;else chscore=A;printf(n Your Score is%c !n,chscore);return;第23页,讲稿共64张,创作于星期二【例例4.64.6】从键盘读取一个字符数据,判断其类型是:控制从键盘读取一个字符数据,判断其类型是:控制类字符,数字字符,大写字符,

20、小写字符,其他字符等类别类字符,数字字符,大写字符,小写字符,其他字符等类别中的哪一类?设计程序完成。中的哪一类?设计程序完成。基本思路:读入字符数据,依据字符的基本思路:读入字符数据,依据字符的ASCIIASCII值判断所属值判断所属范围。范围。第24页,讲稿共64张,创作于星期二4.2.5 switch语句及句及break语句句 switch语句的句的语法格式:法格式:switch ()case :复合复合语句句1 case :复合复合语句句2 case :复合复合语句句n default:default:复合复合语句句n+1 第25页,讲稿共64张,创作于星期二下面使用下面使用switc

21、h语句改写例句改写例题【例例4.5】。【例例4.7】设计程序完成将百分制成程序完成将百分制成绩转换成五分制表示。成五分制表示。#include void main()c4:int nscore;c5:char chscore;c6:printf(n input Score(0 100):n);c7:scanf(%d,&nscore);c8:nscore /=10;/变换后,后,nscore 的的值是是010之之间的整数的整数第26页,讲稿共64张,创作于星期二c9:switch (nscore )c10:c11:case 0:c12:case 1:c13:case 2:c14:case 3:c

22、15:case 4:c16:case 5:chscore =E;c17:case 6:chscore =D;c18:case 7:chscore =C;c19:case 8:chscore =B;c20:case 9:c21:case 10:chscore =A;第27页,讲稿共64张,创作于星期二c23:printf(n Your Score is%c !n,chscore);c24:return;c23 c23句输出句输出chscorechscore变量的当前值。编译运行此段程序应变量的当前值。编译运行此段程序应该是正确的。但是程序运行后,不管百分制成绩是多少,输该是正确的。但是程序运行后

23、,不管百分制成绩是多少,输出结果总是如下:出结果总是如下:Your Score is A !Your Score is A !程序一定是存在问题。程序一定是存在问题。第28页,讲稿共64张,创作于星期二n这里说的流程控制语句,就是指跳转语句这里说的流程控制语句,就是指跳转语句breakbreak。breakbreak语句的语句的作用之一就是从某个作用之一就是从某个casecase子句处跳出子句处跳出switchswitch语句,继续执行语句,继续执行switchswitch的下一条的下一条语句。语句。breakbreak语句还用于循环语句语句还用于循环语句当中,后面介绍。当中,后面介绍。n例例

24、4.74.7的正确写法需要的正确写法需要breakbreak与与switchswitch语句配合使用,程序如下:语句配合使用,程序如下:第29页,讲稿共64张,创作于星期二#include void main()c4:int nscore;c5:char chscore;c6:printf(n input Score(0 100):n);c7:scanf(%d,&nscore);c8:nscore /=10;/变换后,后,nscore 的的值是是010之之间的整数的整数c9:switch (nscore )c10:c11:case 0:c12:case 1:c13:case 2:c14:cas

25、e 3:第30页,讲稿共64张,创作于星期二c15:case 4:c16:case 5:chscore =E;c16_1:break;c17:case 6:chscore =D;c17_1:break;c18:case 7:chscore =C;c18_1:break;c19:case 8:chscore =B;c19_1:break;c20:case 9:c21:case 10:chscore =A;c21_1:break;c23:printf(n Your Score is%c !n,chscore);return;第31页,讲稿共64张,创作于星期二n【例例4.8】设计能能够完成完成单步

26、四步四则运算的运算的简易运算器,易运算器,输出运算出运算结果。果。第32页,讲稿共64张,创作于星期二4.3 循循环结构构 C C语言中的循环结构主要包括三个语句,分别是:语言中的循环结构主要包括三个语句,分别是:whilewhile语语句,句,do-whiledo-while语句,语句,forfor语句。每个语句各有自身的特点,语句。每个语句各有自身的特点,学习时注意它们在构成循环结构时的异同。学习时注意它们在构成循环结构时的异同。第33页,讲稿共64张,创作于星期二4.3.1 while4.3.1 while语句语句 whilewhile语句也可以称之为语句也可以称之为“当语句当语句”。表

27、达的含义是:表达的含义是:当条件表达式的值为真(非当条件表达式的值为真(非0 0值)时,就值)时,就执行循环体,之后重新判断条件表达式的值;如此重复多次执行循环体,之后重新判断条件表达式的值;如此重复多次执行循环体,直到条件表达式的值为假(执行循环体,直到条件表达式的值为假(0 0值)时,值)时,whilewhile语语句结束,顺序执行其后的下一条语句。句结束,顺序执行其后的下一条语句。使用流程框图表示如使用流程框图表示如教材图教材图4-8 4-8。第34页,讲稿共64张,创作于星期二while语句的语法格式如下:语句的语法格式如下:while (while ()复合语句复合语句其语义是:其语

28、义是:1.计算条件表达式的值;计算条件表达式的值;2.如果值为真(或者称为成立,或者非如果值为真(或者称为成立,或者非0),则按顺序执行复合语句;),则按顺序执行复合语句;返回步骤返回步骤1;3.如果值为假(或者称为不成立,或者如果值为假(或者称为不成立,或者0值),则执行值),则执行while语句的下语句的下一条语句。一条语句。第35页,讲稿共64张,创作于星期二【例例4.9】输出出ASCII表的可表的可见字符,字符之字符,字符之间用逗号分隔。可用逗号分隔。可见字字符的符的ASCII值在在32126之之间。#include void main()c4:int ch=32;c5:while(c

29、h 127)c6:c7:printf(%c,ch);/输出字符的同出字符的同时,用逗号分隔不同字符,用逗号分隔不同字符c8:ch+;c10:return;第36页,讲稿共64张,创作于星期二【例例4.10】复制复制输入的一行字符串,并入的一行字符串,并统计字符个数。字符个数。可以使用可以使用getchar()函数函数获得得键盘输入的一个字符。一行入的一个字符。一行字符串的字符串的结尾是回尾是回车符符(n)。由于系。由于系统提供了提供了键盘缓冲冲区,所以能区,所以能够实现复制字符串的效果。复制字符串的效果。#include void main()int nCh=0;char ch;printf(

30、input a string:n);while (ch=getchar()!=n )putchar(ch);nCh+;printf(n The number of char is :%d!n,nCh);第37页,讲稿共64张,创作于星期二【例例4.11】对例例4.9改改进,每行,每行输出十个字符。出十个字符。#include void main()c4:int ch=32,i=1;c5:while(ch 127)c6:c7:printf(%c,ch);c8:if (i%10 =0)c9:printf(n);c10:i+;c11:ch+;return;第38页,讲稿共64张,创作于星期二4.3.

31、2 do-while4.3.2 do-while语句语句 do-whiledo-while语句与语句与whilewhile语句的区别之一是,条件表达式的语句的区别之一是,条件表达式的计算与判断时机不同。首先看语法格式:计算与判断时机不同。首先看语法格式:do do 复合语句复合语句 while(while(););其执行过程是:首先执行复合语句,然后判断条件表达式其执行过程是:首先执行复合语句,然后判断条件表达式是否成立,如若成立则再次执行复合语句,否则不成立时,是否成立,如若成立则再次执行复合语句,否则不成立时,do-whiledo-while语句结束,执行下一条语句。其流程描述如教材图语句

32、结束,执行下一条语句。其流程描述如教材图4-9.4-9.第39页,讲稿共64张,创作于星期二【例例4.124.12】求两个正整数的最大公因子。求两个正整数的最大公因子。此问题最著名的解法是欧几里德此问题最著名的解法是欧几里德EuclidEuclid算法,也称之为算法,也称之为辗转相除法。用自然语言描述如下:辗转相除法。用自然语言描述如下:1.1.任意输入两个正整数任意输入两个正整数m m和和n n;2.2.求求 r=m%nr=m%n;3.3.如果如果r r 等于等于0 0,则说明,则说明n n是是m m的最大公因子,算法结束;的最大公因子,算法结束;4.4.否则否则 r r不等于不等于0 0,

33、则将,则将n n赋值给赋值给m m,r r赋值给赋值给n n;转;转2 2处继续。处继续。第40页,讲稿共64张,创作于星期二#include void main()int m,n,r,m1,n1;printf(n input m,n:n);scanf(%d%d,&m,&n);m1=m;n1=n;do r=m%n;m=n;/这里做里做辗转赋值 n=r;while (n!=0);printf(n The%d and%d s greatest common divisor is%d!n,m1,n1,m);第41页,讲稿共64张,创作于星期二【例例4.13】任意任意输入一个整数,将其倒序后入一个整数

34、,将其倒序后输出。如出。如输入入5678,则输出出8765#include void main()int m,r;printf(n input an integer m:n);scanf(%d,&m);do r=m%10;printf(%d,r);while(m/=10);printf(n);第42页,讲稿共64张,创作于星期二4.3.3 for4.3.3 for语句语句 forfor语句是结构比较完备,使用比较灵活的,用于构造循语句是结构比较完备,使用比较灵活的,用于构造循环结构的语句之一。甚至可以取代环结构的语句之一。甚至可以取代do-whiledo-while和和 while while

35、 语句语句.语法格式为语法格式为:for(for(;)复合语句复合语句 与与do-whiledo-while和和whilewhile语句相比较,除了关键字不同之外,语句相比较,除了关键字不同之外,还多了两个表达式;而且表达式之间必须使用分号相分隔;还多了两个表达式;而且表达式之间必须使用分号相分隔;即使某个表达式缺省,即使某个表达式缺省,分号分号也也不能少不能少。表达式前面添加初。表达式前面添加初值,条件和增量字样仅是为了表达各自的作用和功能。值,条件和增量字样仅是为了表达各自的作用和功能。第43页,讲稿共64张,创作于星期二forfor语句的执行步骤描述如下:语句的执行步骤描述如下:1.1.

36、计算初值表达式;计算初值表达式;2.2.计算条件表达式,若值为真(非计算条件表达式,若值为真(非0 0),则按顺序执行复合语句,之后执),则按顺序执行复合语句,之后执行步骤行步骤4 4;3.3.若值为假(若值为假(0 0值),则转到步骤值),则转到步骤5 5;4.4.计算增量表达式;跳转到步骤计算增量表达式;跳转到步骤2 2;5.5.循环语句结束,执行其后的第一个语句。循环语句结束,执行其后的第一个语句。第44页,讲稿共64张,创作于星期二【例例4.14】求求0到到200累加和。累加和。#include void main()int sum=0,i;for(i=0;i=200;i+)sum+=

37、i;printf(n The sum is%d!n,sum);第45页,讲稿共64张,创作于星期二总结循环结构设计的一般步骤如下:总结循环结构设计的一般步骤如下:1.1.选择恰当的选择恰当的循环变量循环变量;2.2.明确循环的明确循环的结束条件结束条件;3.3.循环变量的循环变量的增量(步长)增量(步长)如何变化;如何变化;4.4.循环体包含哪些语句。循环体包含哪些语句。【例例4.154.15】分别打印输出分别打印输出FabonacciFabonacci数列的前数列的前2020项。项。第46页,讲稿共64张,创作于星期二【例例4.16】任意任意输入一个整数入一个整数m,判断其是否素数。,判断其

38、是否素数。#include int main()int i,m,isTrue=1;/m保存保存输入的整数,入的整数,isTrue=1首先首先认定定输入的数是素数入的数是素数printf(n input a number n );scanf(%d,&m);for(i=2;i m 1;i+)if (m%i =0 )isTrue=0;if(isTrue)printf(n%d is prime number!n,m);else printf(n%d is not prime number!n,m);第47页,讲稿共64张,创作于星期二4.3.4 4.3.4 跳转语句跳转语句1.break1.break

39、语句语句 从前面的叙述可知,从前面的叙述可知,breakbreak语句有语句有两种用法两种用法:一是用在:一是用在switchswitch语句,结束分支语句,执行下一条语句;二是用在循语句,结束分支语句,执行下一条语句;二是用在循环结构中,同样是结束循环,执行下一条语句。其语法格式环结构中,同样是结束循环,执行下一条语句。其语法格式如下:如下:break;break;也就是关键字后面直接加一个分号构成。也就是关键字后面直接加一个分号构成。【例例4.174.17】如下数列如下数列,求累加和求累加和sumsum大于大于5 5时,是第几项。时,是第几项。第48页,讲稿共64张,创作于星期二1/1,1

40、/2,1/3,1/4,.,1/n下面下面给出使用出使用break语句完成的算法。句完成的算法。#include void main()int i;double sum=0.0;for(i=1;i+)/*设置无限循置无限循环*/sum+=1.0/i;/求求1/n的累加和的累加和 if(sum 5)/条件成立条件成立时,跳出循,跳出循环 break;printf(n The No.is%d,The sum is%lf.n,i,sum);第49页,讲稿共64张,创作于星期二2.continue2.continue语句语句 continuecontinue语句的作用是跳过循环中剩余的语句而强行执行下一

41、次语句的作用是跳过循环中剩余的语句而强行执行下一次循环。循环。continuecontinue语句只用在语句只用在forfor、whilewhile、do-do-whilewhile等循环体中等循环体中,常与常与ifif条件语句一起使条件语句一起使用用,用来加速循环。其语法格式如下:用来加速循环。其语法格式如下:continue;continue;第50页,讲稿共64张,创作于星期二3.return3.return语句语句语法格式如下:语法格式如下:return return ;return return语句一旦被执行,其作用有三:一是语句一旦被执行,其作用有三:一是计算表达式的计算表达式的值

42、值;二是将表达式的值;二是将表达式的值带回到函数调用语句所在位置带回到函数调用语句所在位置;三是;三是结束当前函数的执行结束当前函数的执行,即使,即使returnreturn后面还有其它语句。如果后面还有其它语句。如果表达式为空,则表达式为空,则returnreturn语句的作用是结束当前函数的执行,语句的作用是结束当前函数的执行,并返回到函数调用语句处。注意表达式的值必须与函数并返回到函数调用语句处。注意表达式的值必须与函数返返回回值类型一致型一致。举例例说明如下:明如下:第51页,讲稿共64张,创作于星期二int func1()c3:.c4:return 1*2;c5:.c6:c7:int

43、 main()c8:c9:int x;c10:x =func1();c11:.第52页,讲稿共64张,创作于星期二4.4 循循环的嵌套的嵌套 从判断语句可以包含判断语句的事实,推而广之,循环语从判断语句可以包含判断语句的事实,推而广之,循环语句的循环体既然是复合语句,当然有循环语句的嵌套形式。句的循环体既然是复合语句,当然有循环语句的嵌套形式。也就是每一种循环语句的循环体内,均可以包含有三种循环也就是每一种循环语句的循环体内,均可以包含有三种循环语句的任何一种。为了叙述方便,定义单层循环是循环体内语句的任何一种。为了叙述方便,定义单层循环是循环体内不包含循环语句的结构;双层循环是循环体内仅包含

44、单层循不包含循环语句的结构;双层循环是循环体内仅包含单层循环的结构形式;三层循环就是双层循环内又包含单层循环的环的结构形式;三层循环就是双层循环内又包含单层循环的结构形式。四层以上的循环很少有应用。结构形式。四层以上的循环很少有应用。第53页,讲稿共64张,创作于星期二n【例例4.184.18】请设计程序完成,统计请设计程序完成,统计100100以内的全部素数的个数;并以内的全部素数的个数;并输出最大的素数。输出最大的素数。第54页,讲稿共64张,创作于星期二 总结一下:双层循环的嵌套形式共可分总结一下:双层循环的嵌套形式共可分9 9种,这里仅以种,这里仅以forfor作为外层循环为例,以作为

45、外层循环为例,以whilewhile和和do-whiledo-while为外层循环的嵌套为外层循环的嵌套与此相似。与此相似。1.for-for1.for-for嵌套嵌套for(;)/for(;)/各个表达式均被省略了,以下相同各个表达式均被省略了,以下相同 /其它必要的语句其它必要的语句 for(;)for(;)/内层循环体内层循环体 /必要语句必要语句 第55页,讲稿共64张,创作于星期二2.for-while2.for-while嵌套嵌套for(;)for(;)/其它必要的语句其它必要的语句 while(while()/内层循环体内层循环体 /必要语句必要语句 第56页,讲稿共64张,创作

46、于星期二3.for-do-while嵌套嵌套for(;)/必要的必要的语句句 do /内内层循循环体体 while();/必要必要语句句第57页,讲稿共64张,创作于星期二【例例4.194.19】请设计程序输出如下图形。请设计程序输出如下图形。*第58页,讲稿共64张,创作于星期二【例例4.204.20】设计程序完成,输出等腰三角形的图形如下:设计程序完成,输出等腰三角形的图形如下:*第59页,讲稿共64张,创作于星期二【例例4.214.21】设计程序输出设计程序输出y=cos(x)y=cos(x)的图像。的图像。由于有字符窗口的限制,只能将由于有字符窗口的限制,只能将cos(x)cos(x)

47、的图像顺时针旋的图像顺时针旋转转9090o o输出,也就是屏幕向右的方向设为输出,也就是屏幕向右的方向设为y y轴正向,屏幕向轴正向,屏幕向下的方向设为下的方向设为x x轴的正向。轴的正向。另外,屏幕宽度一般是另外,屏幕宽度一般是8080个字符,所以将个字符,所以将x x轴设定在屏幕轴设定在屏幕的的4040列位置处。列位置处。x x值从值从0 0o o开始,间隔开始,间隔1515o o取值,到取值,到360360o o结束。结束。cos(x)cos(x)的值在的值在-1-1到到+1+1之间变化,为了比较好地反映值的变之间变化,为了比较好地反映值的变化情况,特别将化情况,特别将y y值放大值放大

48、3535倍,并向屏幕的右侧移动倍,并向屏幕的右侧移动4040个个字符,使之介于字符,使之介于5 5到到7575之间。之间。第60页,讲稿共64张,创作于星期二【例例4.224.22】百马百担问题。共有百马百担问题。共有100100匹马,要驮匹马,要驮100100担货,其中大马驮担货,其中大马驮3 3担,中马驮担,中马驮2 2担,两匹小马驮担,两匹小马驮1 1担,求大、中、小马各有多少担,求大、中、小马各有多少匹?匹?解决此问题,不妨设大、中、小马各有解决此问题,不妨设大、中、小马各有x,y,zx,y,z匹。可以列匹。可以列 出方程组如下:出方程组如下:x+y+z=100 (1)x+y+z=10

49、0 (1)3*x+2*y+0.5*z=100 (2)3*x+2*y+0.5*z=100 (2)第61页,讲稿共64张,创作于星期二4.5 常常见的的错误1.1.在条件表达式中,将在条件表达式中,将=误写为误写为=。例如:。例如:if(year%4=0&year%100!=0)|(year%400=0)if(year%4=0&year%100!=0)|(year%400=0)此处产生的错误是:此处产生的错误是:error C2106:=:left operand error C2106:=:left operand must be l-value must be l-value。是由于将。是由于

50、将=误写为误写为=造成的。造成的。2.2.将数学中的不等式写法,直接应用于程序设计之中。将数学中的不等式写法,直接应用于程序设计之中。例如:例如:(x y z)(x y z)/正确的写法是正确的写法是 (x y&y z)(x y&y z)3.else3.else子句之前的语句缺少分号。子句之前的语句缺少分号。第62页,讲稿共64张,创作于星期二4.case4.case子句缺少匹配的子句缺少匹配的breakbreak语句。语句。5.case5.case子句的常值重复出现。子句的常值重复出现。6.6.括号不匹配。建议书写程序时不管大括号,方括号,圆括号不匹配。建议书写程序时不管大括号,方括号,圆

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 资格考试

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com