第2章 结构化程序设计基础和C语言的控制结构(精品).ppt

上传人:hyn****60 文档编号:70744918 上传时间:2023-01-27 格式:PPT 页数:89 大小:785.50KB
返回 下载 相关 举报
第2章 结构化程序设计基础和C语言的控制结构(精品).ppt_第1页
第1页 / 共89页
第2章 结构化程序设计基础和C语言的控制结构(精品).ppt_第2页
第2页 / 共89页
点击查看更多>>
资源描述

《第2章 结构化程序设计基础和C语言的控制结构(精品).ppt》由会员分享,可在线阅读,更多相关《第2章 结构化程序设计基础和C语言的控制结构(精品).ppt(89页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、程序设计技术程序设计技术n nC C语言数据描述和语言数据描述和语言数据描述和语言数据描述和C C程序设计初步程序设计初步程序设计初步程序设计初步 n n结构化程序设计基础和结构化程序设计基础和结构化程序设计基础和结构化程序设计基础和C C语言的控制结构语言的控制结构语言的控制结构语言的控制结构n n数组及其应用数组及其应用数组及其应用数组及其应用 n n函数与函数与函数与函数与C C程序结构程序结构程序结构程序结构 n n指针与函数指针与函数指针与函数指针与函数 n n指针与数组指针与数组指针与数组指针与数组 n n字符串及其应用字符串及其应用字符串及其应用字符串及其应用n n结构体类型和联

2、合体类型结构体类型和联合体类型结构体类型和联合体类型结构体类型和联合体类型 n nC C语言的文件处理及其应用语言的文件处理及其应用语言的文件处理及其应用语言的文件处理及其应用 n n位运算与枚举类型位运算与枚举类型位运算与枚举类型位运算与枚举类型 C程序的控制结构程序的控制结构n nC C程序的控制结构概述程序的控制结构概述程序的控制结构概述程序的控制结构概述n nC C语言中的关系运算和逻辑运算语言中的关系运算和逻辑运算语言中的关系运算和逻辑运算语言中的关系运算和逻辑运算n n分支结构及其应用分支结构及其应用分支结构及其应用分支结构及其应用n n循环结构及其应用循环结构及其应用循环结构及其

3、应用循环结构及其应用n n其他简单控制结构其他简单控制结构其他简单控制结构其他简单控制结构n nC C语言控制结构应用举例语言控制结构应用举例语言控制结构应用举例语言控制结构应用举例结构化程序设计概述结构化程序设计概述 结结构构化化程程序序设设计计是是进进行行程程序序设设计计的的方方法法和和原原则则。按按照照结结构构化化程程序序设设计计的的基基本本观观点点,任任何何程程序序都都可可以以通通过过三三种种基基本程序结构的组合实现。这三种基本结构是:本程序结构的组合实现。这三种基本结构是:n 顺序结构顺序结构:按语句出现的顺序依次执行的程序结构。n 选选择择结结构构:根据给定的条件是否成立,以决定程

4、序流程转向的程序结构。n 循循环环结结构构:在某种条件成立的情况下,反复执行某一公共程序段,直到条件不成立时,终止循环的程序结构。结构化程序的优点:结构化程序的优点:具有结构清晰、可读性好、易于修改。具有结构清晰、可读性好、易于修改。C程序的控制结构程序的控制结构n nC C程序的控制结构概述程序的控制结构概述程序的控制结构概述程序的控制结构概述n nC C语言中的关系运算和逻辑运算语言中的关系运算和逻辑运算语言中的关系运算和逻辑运算语言中的关系运算和逻辑运算n n分支结构及其应用分支结构及其应用分支结构及其应用分支结构及其应用n n循环结构及其应用循环结构及其应用循环结构及其应用循环结构及其

5、应用n n其他简单控制结构其他简单控制结构其他简单控制结构其他简单控制结构n nC C语言控制结构应用举例语言控制结构应用举例语言控制结构应用举例语言控制结构应用举例C语言中的关系运算和逻辑运算语言中的关系运算和逻辑运算 对于分支结构和循环结构都涉及到两个方面对于分支结构和循环结构都涉及到两个方面的基本问题:的基本问题:1 1)如何表示控制结构中的条件;)如何表示控制结构中的条件;2 2)对于控制结构中的条件如何判断成立与否;)对于控制结构中的条件如何判断成立与否;程序设计语言中,用程序设计语言中,用关系运算关系运算和和逻辑运算逻辑运算来实现对程序控制结构中条件的描述和处理。来实现对程序控制结

6、构中条件的描述和处理。C语言中的关系运算语言中的关系运算1)1)关系运算符和关系表达式关系运算符和关系表达式关系运算符和关系表达式关系运算符和关系表达式 关系运算符用于比较两个运算对象,用关系运算符将两个关系运算符用于比较两个运算对象,用关系运算符将两个表达式连接起来的式子称为关系表达式。表达式连接起来的式子称为关系表达式。2)2)关系运算符及其优先级关系运算符及其优先级关系运算符及其优先级关系运算符及其优先级n =(同级)(同级)n =!=(同级)(同级)n关系运算符的优先级低于算术运算符。关系运算符的优先级低于算术运算符。n关系运算符的结合性为左结合性。关系运算符的结合性为左结合性。例如:

7、ca+b 等价于 c=55=5/*/*结果为结果为1*/1*/10=10=1010/*/*结果为结果为1*/1*/5 5!=5=5/*/*结果为结果为0*/0*/53 53/*/*结果为结果为1*/1*/35 35/*/*结果为结果为0*/0*/C语言中的关系运算语言中的关系运算 该程序运行执行语句该程序运行执行语句c=5-1=a+2=a+2=a+2=a+2=和和=结合,即先计算表达式结合,即先计算表达式5-5-1=a+21=a+2得到结果得到结果0 0,然后计算表达式,然后计算表达式0=b-210c 且 a+cb 且 b+ca)。计算三角形的面积的公式为:复合语句及其应用复合语句及其应用 上

8、面程序中,上面程序中,ifif结构的语句部分是复合语句:结构的语句部分是复合语句:s=(a+b+c)/2;s=(a+b+c)/2;area=area=sqrt(ssqrt(s*(s-a)*(s-b)*(s-c);*(s-a)*(s-b)*(s-c);printf(%fn,areaprintf(%fn,area););在在C C程序的设计过程中,需要使用复合语句的地方必须使用复合语句程序的设计过程中,需要使用复合语句的地方必须使用复合语句的形式,否则程序在语法上可能检查不出任何错误,但程序运行的结果的形式,否则程序在语法上可能检查不出任何错误,但程序运行的结果与程序设计者的期望会相去甚远。例如,

9、如果将例与程序设计者的期望会相去甚远。例如,如果将例2.52.5相关程序段描述为相关程序段描述为如下形式:如下形式:if(a+bc&a+cb&b+ca)/*if(a+bc&a+cb&b+ca)/*满足三角形条件时求其面积满足三角形条件时求其面积*/s=(a+b+c)/2;s=(a+b+c)/2;area=area=sqrt(ssqrt(s*(s-a)*(s-b)*(s-c);*(s-a)*(s-b)*(s-c);printf(%fn,areaprintf(%fn,area););双分支结构及其应用双分支结构及其应用 n双分支结构的形式:双分支结构的形式:if(expression)senten

10、ce1;else sentence2;2.2.3 if_else2.2.3 if_else语句与程序的双分支结构语句与程序的双分支结构注意注意:作为条件的表达式可以是任何可以求出作为条件的表达式可以是任何可以求出0 0值或非值或非0 0值的表达式。值的表达式。ifif结构或结构或elseelse结构后语句部分都可以是结构后语句部分都可以是C C语言的任何合法语句。语言的任何合法语句。双分支结构及其应用双分支结构及其应用exps1s2ynn n 语句的执行过程:语句的执行过程:语句的执行过程:语句的执行过程:先判断表达式的值,若表达式的值为真(表达式先判断表达式的值,若表达式的值为真(表达式先判

11、断表达式的值,若表达式的值为真(表达式先判断表达式的值,若表达式的值为真(表达式的值不为的值不为的值不为的值不为0 0 0 0),则执行语句),则执行语句),则执行语句),则执行语句1 1 1 1,然后执行,然后执行,然后执行,然后执行ifififif结构的后续语结构的后续语结构的后续语结构的后续语句;否则,执行语句句;否则,执行语句句;否则,执行语句句;否则,执行语句2 2 2 2,然后执行,然后执行,然后执行,然后执行ifififif结构的后续语句。结构的后续语句。结构的后续语句。结构的后续语句。双分支结构及其应用双分支结构及其应用例例2-62-6 求任意输入的求任意输入的3 3个整个整数

12、中的最大数。数中的最大数。条件运算符与条件表达式及其应用条件运算符与条件表达式及其应用2.2.4 2.2.4 条件运算符与条件表达式条件运算符与条件表达式 C C语言中,若语言中,若ififelseelse语句结构中的语句部分满足语句结构中的语句部分满足下列两个条件:下列两个条件:无论表示条件的表达式取何值(真或假),语句部分无论表示条件的表达式取何值(真或假),语句部分都是一句简单的赋值语句。都是一句简单的赋值语句。两条赋值语句都是为同一个变量赋值。两条赋值语句都是为同一个变量赋值。则,可以使用则,可以使用C C语言中提供的条件运算符代替这种语言中提供的条件运算符代替这种ifelseifel

13、se结构。结构。条件运算符与条件表达式及其应用条件运算符与条件表达式及其应用 条件运算符是条件运算符是C C语言中惟一的一个三元运算符,使用条语言中惟一的一个三元运算符,使用条件运算符构成的表达式称为条件表达式。件运算符构成的表达式称为条件表达式。exp1?exp2:exp3exp1?exp2:exp31)条件表达式一般形式如下:条件表达式一般形式如下:2)条件表达式的执行过程条件表达式的执行过程:首先计算表达式首先计算表达式exp1exp1的值,若的值,若exp1exp1的值为非的值为非0 0(真),则(真),则计算出表达式计算出表达式exp2exp2的值作为整个条件表达式的值;若的值作为整

14、个条件表达式的值;若exp1exp1的的值为值为0 0(假),则计算出表达式(假),则计算出表达式exp3exp3的值作为整个条件表达式的值作为整个条件表达式的值。的值。条件运算符与条件表达式及其应用条件运算符与条件表达式及其应用条件运算符的优先级别高于赋值运算符,但条件运算符的优先级别高于赋值运算符,但低于关系运算符和算术运算符。低于关系运算符和算术运算符。条件运算符的结合方向为右结合性,例如有条件运算符的结合方向为右结合性,例如有如下形式的条件表达式:如下形式的条件表达式:ab?a:cd?c:dab?a:cd?c:d可以看出,在数据对象可以看出,在数据对象cdcd(关系表达式)的两边具关系

15、表达式)的两边具有同级的条件运算符(有同级的条件运算符(?:?:),由于条件运算符的结合),由于条件运算符的结合性为右结合,数据对象性为右结合,数据对象cdcd先与其右边的的条件运算先与其右边的的条件运算符结合,即先计算符结合,即先计算cd?c:dcd?c:d,所以整个条件表达式的所以整个条件表达式的计算过程与表达式计算过程与表达式ab?a:(cd?c:d)ab?a:(cd?c:d)的计算过程相同。的计算过程相同。条件运算符与条件表达式及其应用条件运算符与条件表达式及其应用例例2-72-7 从键盘上输入一个英文字母,若其是大写字母则转从键盘上输入一个英文字母,若其是大写字母则转换为小写字母输出

16、;否则转换为大写字母输出。换为小写字母输出;否则转换为大写字母输出。在上面程序中,表达式在上面程序中,表达式chch=A A&ch&ch=A A&ch&ch=A&ch=Z?ch+32:ch-32;多分支结构及其应用多分支结构及其应用2.2.5 if2.2.5 if语句的嵌套与程序的多分支结构语句的嵌套与程序的多分支结构 ifif结构或者结构或者elseelse结构的语句部分又是一个另外一个结构的语句部分又是一个另外一个ifif结构,称为结构,称为ifif语句的嵌套。语句的嵌套。在在C C程序设计中,程序设计中,ifif语句的嵌套结构用于解决在若干语句的嵌套结构用于解决在若干种相关情况中选择一种

17、进行处理的问题。种相关情况中选择一种进行处理的问题。例如,在一个二分例如,在一个二分支支ifif语句的两个语语句的两个语句部分分别嵌入了句部分分别嵌入了一个二分支一个二分支ifif语句语句的形式为:的形式为:if(exp1)if(exp2)sentence1;elsesentence2;else if(exp3)sentence3;elsesentence4;多分支结构及其应用多分支结构及其应用例例2-82-8 公司按照公司按照销售人员收到的销售人员收到的订单金额数量评订单金额数量评定等级,订单总定等级,订单总金额超过一万的金额超过一万的为为A A等,等,5000999950009999为为B

18、 B等,等,2500499925004999为为C C等,等,25002500以下为以下为D D等。等。编制程序对输入编制程序对输入的订单总金额数的订单总金额数判定等级。判定等级。多分支结构及其应用多分支结构及其应用 当被嵌套的当被嵌套的ifif结构均被嵌套在结构均被嵌套在elseelse的语句部分时,的语句部分时,形成了一种称为形成了一种称为else_ifelse_if的多分支选择结构,这是的多分支选择结构,这是if_elseif_else多重嵌套的变形。其一般形式为:多重嵌套的变形。其一般形式为:if(exp1)sentence1;else if(exp2)sentence2;else i

19、f(exp3)sentence3;else if(expN)sentenceN;else sentenceN+1;多分支结构及其应用多分支结构及其应用注意:注意:在这种特殊的在这种特殊的elseelseifif结构中,表示条件的表达式结构中,表示条件的表达式是相互排斥的,执行该结构时控制流程从是相互排斥的,执行该结构时控制流程从exp1exp1开始判断,开始判断,一旦有一个表达式的值为非一旦有一个表达式的值为非0 0(真)时,就执行与之匹(真)时,就执行与之匹配的语句,然后退出整个选择结构;如果所有表示条件配的语句,然后退出整个选择结构;如果所有表示条件的表达式值均为的表达式值均为0 0(假)

20、,则在执行语句(假),则在执行语句sentenceN+1sentenceN+1后后退出整个选择结构;如果当所有的条件均为假时不需要退出整个选择结构;如果当所有的条件均为假时不需要进行任何操作,则最后的一个进行任何操作,则最后的一个elseelse和语句和语句sentenceN+1sentenceN+1可以缺省。嵌套的可以缺省。嵌套的elseelseifif结构执行流程如图结构执行流程如图2.62.6所示。所示。多分支结构及其应用多分支结构及其应用例例2-92-9 编写程序求如下所示多分支方程的解。编写程序求如下所示多分支方程的解。在程序中,变量在程序中,变量x x的取值区间为:(的取值区间为:

21、(DBL_MINDBL_MIN,1 1)、)、11,1010)、)、1010,DBL_MAXDBL_MAX),),其中其中DBL_MINDBL_MIN和和DBL_MAXDBL_MAX分别表示双精度实型数据所能取得的最小值分别表示双精度实型数据所能取得的最小值和最大值。和最大值。多分支结构及其应用多分支结构及其应用 在包含了在包含了ifif语句嵌套结构的程序中,语句嵌套结构的程序中,elseelse子句与子句与ifif的的配对原则是非常重要的,按不同的方法配对则得到不同的配对原则是非常重要的,按不同的方法配对则得到不同的程序结构。程序结构。C C语言中规定:程序中的语言中规定:程序中的elsee

22、lse子句与在它前面距子句与在它前面距它最近的且尚未匹配的它最近的且尚未匹配的ifif配对。无论将程序书写为何种形配对。无论将程序书写为何种形式,系统总是按照上面的规定来解释程序的结构。式,系统总是按照上面的规定来解释程序的结构。请看如下两个用于比较的程序段:请看如下两个用于比较的程序段:多分支结构及其应用多分支结构及其应用例例2.102.10和例和例2.112.11描述了两种情况下程序的执行情况。其中:描述了两种情况下程序的执行情况。其中:例例2.102.10程序执行的结果为:程序执行的结果为:a=-1,b=10a=-1,b=10,例例2.112.11程序执行的结果为:程序执行的结果为:a=

23、-1,b=11a=-1,b=11。例例2-102-10 else else与与ifif配对原则示例。配对原则示例。例例2-112-11 elseelse与与ifif配对原则示例(使用复合语句改变程序结构)配对原则示例(使用复合语句改变程序结构)switch语句与多分支结构及其应用语句与多分支结构及其应用2.2.6 switch2.2.6 switch语句与程序的多分支结构语句与程序的多分支结构 C C语言中可以使用语言中可以使用switchswitch语句结构实现对多分支选择结语句结构实现对多分支选择结构情况的直接处理。构情况的直接处理。1 1)switchswitch语句结构的一般形式如下:

24、语句结构的一般形式如下:switch(expession)case constand1:sentences1;break;case constand2:sentences2;break;case constandN:sentencesN;break;default:sentencesN+1switch语句与多分支结构及其应用语句与多分支结构及其应用2 2)执行过程:)执行过程:首先,首先,对作为条件的表达式(对作为条件的表达式(expressionexpression)求值;求值;然后,然后,在语句结构的花括号内在语句结构的花括号内从上至下从上至下查找所有的查找所有的casecase分支,分支

25、,当找到与条件表达式值相匹配的当找到与条件表达式值相匹配的casecase时,将其作为控制流程时,将其作为控制流程执行的入口,并执行的入口,并从此处开始执行相应的语句段,直到遇到从此处开始执行相应的语句段,直到遇到breakbreak语句或者是语句或者是switchswitch语句结构的右花括号语句结构的右花括号“”为止。为止。switch(number)case 1:statement1;case 2:statement2;case 3:statement3;default:statement4;statement5;?2switch语句与多分支结构及其应用语句与多分支结构及其应用switc

26、h语句与多分支结构及其应用语句与多分支结构及其应用作为条件的表达式作为条件的表达式expressionexpression的值必须是有序型的,即只的值必须是有序型的,即只能是能是整型、字符型、枚举型整型、字符型、枚举型三者之一。三者之一。语句段语句段sentencessentences可以是单条语句,也可以是多条语句,但可以是单条语句,也可以是多条语句,但这多条语句并不是复合语句,不需要使用花括号这多条语句并不是复合语句,不需要使用花括号 。语句段语句段sentencessentences中的语句可以使任意合法的中的语句可以使任意合法的C C语句。语句。结构中的常数值应与表示条件的表达式值对应

27、一致,且各结构中的常数值应与表示条件的表达式值对应一致,且各常数的值不能相同。常数的值不能相同。结构中的结构中的breakbreak语句和语句和defaultdefault可选项可选项可根据需要确定是否可根据需要确定是否选用。选用。3 3)使用使用switchswitch语句结构时应注意的问题:语句结构时应注意的问题:switch语句与多分支结构及其应用语句与多分支结构及其应用例例2-122-12 从键盘上输入一个字符,判断它是数字、空格还是其它键;若从键盘上输入一个字符,判断它是数字、空格还是其它键;若是数字,还要求显示出是哪一个数字。是数字,还要求显示出是哪一个数字。在语句段中包含了在语句

28、段中包含了switchswitch语句,称为语句,称为switchswitch语句的嵌套。对于内嵌的语句的嵌套。对于内嵌的switchswitch结构处理方法与单层结构处理方法与单层switchswitch结构处理方法相同,需要注意的是:当结构处理方法相同,需要注意的是:当从内嵌的从内嵌的switchswitch结构中退出(执行中遇到了内嵌结构中退出(执行中遇到了内嵌swithcswithc结构中的结构中的breakbreak语语句或执行到了内嵌句或执行到了内嵌switchswitch语句体的右边花括号)时语句体的右边花括号)时,只是退出内嵌的只是退出内嵌的switchswitch结构,而不是

29、退出整个结构,而不是退出整个switchswitch结构,例结构,例2.132.13程序展示了这种情况程序展示了这种情况。例例2-132-13 swithcswithc结构的嵌套示例。结构的嵌套示例。switch语句与多分支结构及其应用语句与多分支结构及其应用4 4)ifif和和switchswitch的比较的比较多分支结构程序设计中:多分支结构程序设计中:ifif语句结构的嵌套可以解决任何条件下的多分支问题;语句结构的嵌套可以解决任何条件下的多分支问题;对于对于switchswitch语句结构,则要求条件是在某个范围内的一些语句结构,则要求条件是在某个范围内的一些离散的等值点离散的等值点(描

30、述为:与什么相匹配(描述为:与什么相匹配,就做什么)就做什么)。在实际的程序设计过程中,可以使用在实际的程序设计过程中,可以使用switchswitch语句结构解语句结构解决的问题,一定也可以用决的问题,一定也可以用ifif语句结构的嵌套来解决;但语句结构的嵌套来解决;但用用ifif语句结构的嵌套可以解决得问题,使用语句结构的嵌套可以解决得问题,使用switchswitch语句语句结构就不一定能够解决。结构就不一定能够解决。C程序的控制结构程序的控制结构n nC C程序的控制结构概述程序的控制结构概述程序的控制结构概述程序的控制结构概述n nC C语言中的关系运算和逻辑运算语言中的关系运算和逻

31、辑运算语言中的关系运算和逻辑运算语言中的关系运算和逻辑运算n n分支结构及其应用分支结构及其应用分支结构及其应用分支结构及其应用n n循环结构及其应用循环结构及其应用循环结构及其应用循环结构及其应用n n其他简单控制结构其他简单控制结构其他简单控制结构其他简单控制结构n nC C语言控制结构应用举例语言控制结构应用举例语言控制结构应用举例语言控制结构应用举例C语言的循环结构及其应用语言的循环结构及其应用2.3 2.3 循环程序结构循环程序结构 在实际问题中经常会遇到许多在实际问题中经常会遇到许多具有规律性的重复计算处具有规律性的重复计算处理理问题,在处理此类问题的程序中就需要将某些语句或语句问

32、题,在处理此类问题的程序中就需要将某些语句或语句组重复执行多次。程序设计中,一组被重复执行的语句称之组重复执行多次。程序设计中,一组被重复执行的语句称之为为循环体循环体,每一次执行完循环体后都必须根据某种条件的判,每一次执行完循环体后都必须根据某种条件的判断决定是继续循环,还是停止循环;决定所依据的条件称之断决定是继续循环,还是停止循环;决定所依据的条件称之为为循环条件循环条件。这种由重复执行的语句或语句组,以及循环条。这种由重复执行的语句或语句组,以及循环条件的判断所构成的程序结构就称为件的判断所构成的程序结构就称为循环结构循环结构。循环结构是结构化程序设计的三种基本结构之一,是构循环结构是

33、结构化程序设计的三种基本结构之一,是构成各种复杂程序的基本构造单元。成各种复杂程序的基本构造单元。在在C C语言中提供了三种用以实现程序循环结构的语句,语言中提供了三种用以实现程序循环结构的语句,它们是:它们是:whilewhile语句、语句、do_whiledo_while语句和语句和forfor语句语句。while型循环结构及其应用型循环结构及其应用2.3.1 while2.3.1 while型循环结构型循环结构1)while1)while型循环控制结构的一般形式为:型循环控制结构的一般形式为:while(exp)Loop-Body2)while2)while型循环结构的执行过程型循环结构

34、的执行过程:首先计算作为判断条件的表达式首先计算作为判断条件的表达式expexp的值;对表达式的值;对表达式expexp的值进行判的值进行判断,若条件表达式的值为非断,若条件表达式的值为非0 0(真),则执行一次循环体(真),则执行一次循环体Loop-BodyLoop-Body;然然后再一次计算条件表达式后再一次计算条件表达式expexp的值,若计算结果仍为非的值,若计算结果仍为非0 0(真),再一次(真),再一次执行循环体。重复上述过程,直到某次计算出的条件表达式值为执行循环体。重复上述过程,直到某次计算出的条件表达式值为0 0(假)(假)时,则退出循环结构;控制流程转到该循环结构之后的语句

35、。时,则退出循环结构;控制流程转到该循环结构之后的语句。while循环控制结构的执行过程如图循环控制结构的执行过程如图2-4所示。所示。while型循环结构及其应用型循环结构及其应用3)3)使用使用whilewhile循环结构时需要注意以下几点:循环结构时需要注意以下几点:由于整个结构的执行过程是先判断、后执行,因而循由于整个结构的执行过程是先判断、后执行,因而循环体有可能一次都不执行。环体有可能一次都不执行。在循环结构的控制部分中,如果表示条件的表达式是在循环结构的控制部分中,如果表示条件的表达式是一个非一个非0 0值常量表达式,则构成了死循环。例如:值常量表达式,则构成了死循环。例如:wh

36、ile(1)while(1)Loop-BodyLoop-Body C C程序设计中,如果不是有意造成死循环,则在程序设计中,如果不是有意造成死循环,则在whilewhile循循环结构的循环体内必须有能够改变循环控制条件的语句存环结构的循环体内必须有能够改变循环控制条件的语句存在。在。循环结构的循环体可以是一条语句、一个复合语句、循环结构的循环体可以是一条语句、一个复合语句、空语句等任意合法的空语句等任意合法的C C语句。语句。例例2-142-14 使用使用whilewhile循环控制结构求循环控制结构求 的值。的值。while型循环结构及其应用型循环结构及其应用 在例在例2.142.14程序中

37、,循环控制变量程序中,循环控制变量n n从初值从初值1 1开始,在循环开始,在循环结构的执行过程中通过循环体中的表达式语句结构的执行过程中通过循环体中的表达式语句n+;n+;修改循环修改循环控制变量,使其逐渐趋近于控制变量,使其逐渐趋近于100100。循环结构中的循环体是由两。循环结构中的循环体是由两条条C C语句组成的,所以需要使用复合语句的形式。当然也可以语句组成的,所以需要使用复合语句的形式。当然也可以通过语句的组合使得循环体由一条语句构成,这样就不需通过语句的组合使得循环体由一条语句构成,这样就不需要使用复合语句形式,上面程序中的循环结构可以改写为如要使用复合语句形式,上面程序中的循环

38、结构可以改写为如下形式:下形式:while(n=100)while(n=100)sum+=i+;sum+=i+;在程序中还需要注意变量在程序中还需要注意变量sumsum的初值问题,由于变量的初值问题,由于变量sumsum用用于存放和数,所以其初值必须从某一固定值开始。一般意义下,于存放和数,所以其初值必须从某一固定值开始。一般意义下,用于存放和数、计数等目的的变量初始值均应为用于存放和数、计数等目的的变量初始值均应为0 0值。值。do_while型循环结构及其应用型循环结构及其应用2.3.2 do_while2.3.2 do_while型循环结构型循环结构1 1)dodowhilewhile型

39、循环控制结构的一般形式为:型循环控制结构的一般形式为:do Loop-Body while(exp);2 2)dodowhilewhile型循环结构的执行过程型循环结构的执行过程:首先执行一次循环体首先执行一次循环体Loop-Body;Loop-Body;然后计算作为判断条件的表达式然后计算作为判断条件的表达式expexp的的值;对表达式值;对表达式expexp的值进行判断,若表达式的值为非的值进行判断,若表达式的值为非0 0(真),则执行一(真),则执行一次循环体;执行完循环体后再一次计算条件表达式的值,若计算结果仍次循环体;执行完循环体后再一次计算条件表达式的值,若计算结果仍为非为非0 0

40、(真),再一次执行循环体。重复上述过程,直到某次计算出的(真),再一次执行循环体。重复上述过程,直到某次计算出的条件表达式值为条件表达式值为0 0(假)时,则退出循环结构;控制流程转到该循环结(假)时,则退出循环结构;控制流程转到该循环结构之后的语句。构之后的语句。Do_while循环控制结构的执行过程如图循环控制结构的执行过程如图2.10所示。所示。do_while型循环结构及其应用型循环结构及其应用3)3)在使用在使用do_whiledo_while循环结构时需要注意以下几点:循环结构时需要注意以下几点:由于整个结构的执行过程是先执行、后判断,所以循环由于整个结构的执行过程是先执行、后判断

41、,所以循环结构中的循环体至少被执行一次。结构中的循环体至少被执行一次。在循环结构的控制部分中,如果表示条件的表达式是一在循环结构的控制部分中,如果表示条件的表达式是一个非个非0 0值常量表达式,则构成了死循环。例如:值常量表达式,则构成了死循环。例如:dodo Loop-Body Loop-Body while(1);while(1);C C程序设计中,如果不是有意造成死循环,则在程序设计中,如果不是有意造成死循环,则在do_whiledo_while循循环结构的循环体内必须有能改变循环控制条件的语句存在。环结构的循环体内必须有能改变循环控制条件的语句存在。循环结构的循环体可以是一条语句、一个

42、复合语句、空循环结构的循环体可以是一条语句、一个复合语句、空语句等任意合法的语句等任意合法的C C语句。语句。do_while型循环结构及其应用型循环结构及其应用例例2-152-15 使用使用do_whiledo_while循环控制结构求循环控制结构求 的值。的值。例例2-162-16 编程序实现功能:将一个整数的各位数字颠倒后输出。编程序实现功能:将一个整数的各位数字颠倒后输出。for型循环结构及其应用型循环结构及其应用2.3.3 for2.3.3 for型循环结构型循环结构 forfor语句构成的循环是语句构成的循环是C C语言中提供的使用最为灵活、语言中提供的使用最为灵活、适应范围最广的

43、循环结构,它不仅可以用于循环次数已确适应范围最广的循环结构,它不仅可以用于循环次数已确定的情况,而且也可以用于循环次数不确定但能给出循环定的情况,而且也可以用于循环次数不确定但能给出循环结束条件的循环结束条件的循环 。1 1)forfor循环结构的一般形式为:循环结构的一般形式为:for(exp1;exp2;exp3)Loop-Body 其中,括号内的三个表达式称为循环控制表达式,其中,括号内的三个表达式称为循环控制表达式,exp1exp1的作用的作用是为循环控制变量赋初值或者为循环体中的其他数据对象赋初值,是为循环控制变量赋初值或者为循环体中的其他数据对象赋初值,exp2exp2的作用是作为

44、条件用于控制循环的执行,的作用是作为条件用于控制循环的执行,exp3exp3的主要作用是对的主要作用是对循环控制变量进行修改,三个表达式之间用分号分隔。循环控制变量进行修改,三个表达式之间用分号分隔。for型循环结构及其应用型循环结构及其应用2 2)forfor循环结构的执行过程:循环结构的执行过程:首先计算表达式首先计算表达式exp1exp1的值对循环控制变量进行初始的值对循环控制变量进行初始化,如果有需要也同时对循环体中的其他数据对象进行化,如果有需要也同时对循环体中的其他数据对象进行初始化操作;然后计算作为循环控制条件使用的表达式初始化操作;然后计算作为循环控制条件使用的表达式exp2e

45、xp2的值;根据的值;根据exp2exp2计算的结果决定循环是否进行,当计算的结果决定循环是否进行,当exp2exp2的值为真(非的值为真(非0 0)时则执行循环体)时则执行循环体Loop-BodyLoop-Body一次;一次;执行完循环体后,计算表达式执行完循环体后,计算表达式exp3exp3的值以修改循环控制的值以修改循环控制变量;然后再次计算表达式变量;然后再次计算表达式exp2exp2的值以确定是否再次执的值以确定是否再次执行循环体;反复执行上述过程直到某一次表达式行循环体;反复执行上述过程直到某一次表达式exp2exp2的的值为值为0 0(假)为止(假)为止。forfor循环控制结构

46、的执行过程如图循环控制结构的执行过程如图2.122.12所示。所示。for型循环结构及其应用型循环结构及其应用3 3)使用)使用forfor循环结构时需要注意以下几点:循环结构时需要注意以下几点:由由于于整整个个结结构构的的执执行行过过程程是是先先判判断断、后后执执行行,因因而而循循环环体体有有可可能能一一次次都不执行。都不执行。C C语语言言的的forfor循循环环控控制制结结构构不不仅仅提提供供在在其其控控制制部部分分的的表表达达式式3 3中中修修改改循循环环控控制制变变量量的的值值,而而去去还还允允许许在在forfor循循环环的的循循环环体体中中存存在在能能改改变变循循环环控控制制条条件

47、的语句,使用时需特别注意。件的语句,使用时需特别注意。循循环环结结构构的的循循环环体体可可以以是是一一条条语语句句、一一个个复复合合语语句句、空空语语句句等等任任意意合合法的法的C C语句。语句。根根据据程程序序功功能能的的需需要要,循循环环控控制制部部分分的的三三个个表表达达式式分分别别都都可可以以逗逗号号表表达式,这也是逗号表达式最主要的用法之一。达式,这也是逗号表达式最主要的用法之一。根据程序功能的需要,循环控制部分的三个表达式中可以缺省一个、根据程序功能的需要,循环控制部分的三个表达式中可以缺省一个、两个、三个,但作为分隔符使用的分号不能缺省。两个、三个,但作为分隔符使用的分号不能缺省

48、。for型循环结构及其应用型循环结构及其应用例例2-182-18 编程序实现功能:判断从键盘输入一个大于编程序实现功能:判断从键盘输入一个大于2 2的正整数是否为的正整数是否为素数。素数。所谓素数,就是只能被所谓素数,就是只能被1 1和自身整除的自然数。根据素数的和自身整除的自然数。根据素数的定义,判断一个正整数定义,判断一个正整数m m是否为素数最简单的方法就是:将是否为素数最简单的方法就是:将2 2到到m-1m-1之间的每一个整数去除之间的每一个整数去除m m,若其间有一个能整除若其间有一个能整除m m,则则m m不是素数;若不是素数;若2 2到到m-1m-1之间的所有整数都不能整除之间的

49、所有整数都不能整除m m,则,则m m为素数。为素数。例例2-172-17 使用使用forfor循环控制结构求循环控制结构求 的值。的值。空语句及其在程序中的使用空语句及其在程序中的使用2.3.4 2.3.4 空语句及其在程序中的使用空语句及其在程序中的使用 在在C C语言中,只由分号语言中,只由分号“;”构成的构成的C C语句称为语句称为空语句空语句。空空语语句句不不进进行行任任何何操操作作(或或者者称称之之为为进进行行空空操操作作),在在C C程程序序的的设设计计中中,程程序序的的某某个个位位置置从从C C语语言言的的语语法法要要求求上上应应该该有有一一个个C C语语句句存存在在,但但语语

50、义义上上(即即程程序序的的逻逻辑辑功功能能上上)又又不不需需要要进进行行任任何何操操作作时时,就就可可以以使使用用空空语语句句来来占占据据这这个个语语句句位置以同时满足语法和语义上的需求。位置以同时满足语法和语义上的需求。空语句及其在程序中的使用空语句及其在程序中的使用例如有如下形式的例如有如下形式的C C程序段:程序段:while(getcharwhile(getchar()!=n)()!=n);该段程序中,当循环条件为真时(即接收到的字符不该段程序中,当循环条件为真时(即接收到的字符不是换行符时),程序不进行任何操作(执行空语句后)进是换行符时),程序不进行任何操作(执行空语句后)进入下一

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

当前位置:首页 > 生活休闲 > 生活常识

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

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁