C语言入门基础 第7章 循环结构.ppt_第1页
C语言入门基础 第7章 循环结构.ppt_第2页
C语言入门基础 第7章 循环结构.ppt_第3页
C语言入门基础 第7章 循环结构.ppt_第4页
C语言入门基础 第7章 循环结构.ppt_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

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

文档简介

1、第7章循环结构在前一章介绍了普朗姆基本结构之一的选择结构。 当计程仪柱具有多个分支时,能够使用选择结构来对分支进行选择控制。 本章将继续讨论回圈结构,也就是普拉姆的另一个基本结构。 如果计程仪项重复执行相同的操作,则必须使用循环结构。 很多问题必须使用循环结构。 例如,树的扫描、排列输出、连锁表的操作等。 循环结构的功能是设定执行整个循环的条件,通过变更循环变量,反复执行一系列操作。 为实现循环结构,习语言提供了for、while、do-while和goto语句。第7章循环结构,在本章中,for语句的结构和使用while语句的使用和for语句的比较do-while语句的使用和while语句的比

2、较循环结构中continue和break语句的作用goto语句的限制和功能嵌套使用2个基本结构。 7.1 for语句、for语句是用习语言实现循环结构的方法之一。 for语句易于使用以实现满足某一条件的一系列操作的重复执行,其所实现的环结构的逻辑明确。 本节介绍for语句的语法和使用注意事项,并提供一些for语句的使用示例。 使用7.1.1for语句,for语句可以分为for标头和for主体两部分。 for标头由三个表达式组成:牛鼻子字for和括号中用分号分隔的表达式。for主体是循环的操作内容,可以是一个语句,也可以是大括号中的复合语句。 For语句的标准形式如下: For (式1; 式2;

3、 表达式3 ) /* for磁头*/操作; 使用/* for体*/、7.1.1for语句,for语句的执行程序流程图如右图所示。 7.1.2 for标头中的3个表现形式,for句子的构造明确是因为for标头的3个表现形式分工明确合理。 3个公式分别负责环结构的3个必要的功能:公式1被用作环结构的初始化,通常是代入公式,设定环变量和其他变量的初始值的公式2负责环条件的判断,形式与if语句的控制公式类似,通常是关系公式或逻辑公式的公式3是公式2中的7.1.2 for标头的三个公式。 因此,for语句头可以省略for (初始化式循环判定式循环变量控制式)这些个3个公式,但必须保持中央的分数。 此外,

4、公式1可以在for语句之前提及,并且公式2可以在操作之后。 式1 for (; 式2; 要操作的表达式3,7.1.2 for标头中的三个表达式。 在这种情况下,for语句的初始化表达式和循环变量控制表达式为空,但其功能和执行顺序与标准格式完全一致。 如果表达式2为空,则表达式2的值被视为true。 此时,该字符没有进入死循环,并且重复for内部的操作。 如下所示: for (表达式1; 表达式3 )操作,7.1.3 for标头的逗号表达式在5.7.1节中学习了逗号表达式的使用方法。 本节介绍逗号表达式在for语句中的作用。 for标题中的三个表达式都可以使用逗号表达式,但不建议全部使用逗号表达

5、式。 在循环的开始阶段,如果有多个变量要初始化,则可以用逗号表达式将多个赋值语句组合为for语句的第一个表达式。 用for标题初始化3个变量的示例如下所示。 for (变量1=常数1、变量2=常数2、变量3=常数3式2; 表达式3 )按操作的顺序喀呖声。 如果每个循环有多个循环变量要更改,则可以将逗号表达式用作for语句的最后一个表达式。如下例所示,/*数列1、3、5、7的前100个之和*/for (i=1,count=0,sum=0; 计数100; i =2,计数)和=I; 不要将逗号表达式用于7.1.3 for标头中的逗号表达式、7.1.3 for标头中的逗号表达式或用于循环确定的第二个表

6、达式。 逗号表达式的值等于最后一个以逗号分隔的子表达式的值,但会降低查询密码的易读性。 一个好的解决方案是将逗号表达式的最后一个逗号之前的表达式全部放在for本体的最后。 例: for (表达式1; 表达式2、表达式3、表达式4; 表达式5 )表达式6、7.1.3 for标头的逗号式可以改写为如下完全等效的构造: for (式1、式2、式3、式4、表达式5 )表达式6、表达式2、表达式3; 警告:不要在for语句的判定式中使用逗号式。 嵌套7.1.4 for文件。 for语句嵌套通过在一个for主体中调用另一个for结构来实现循环嵌套。 形式为for (式1; 表达式2、表达式3 )操作1 f

7、or (表达式4; 表达式5,表达式6 )操作2操作3操作4,7.1.5 for语句使用示例,其中1比1到n的阶乘和1到n的阶乘和表达式是 1! 二号! 三号! 四! n! 中所述情节,对概念设计中的量体执行面积分析。 因为表达式存在两级规则数列的修正,所以修正此表达式需要两级循环,并且可以使用两个for语句嵌套实现。 其中,外层循环实现阶乘相加,内层循环实现阶乘相乘。 7.1.5 for语句使用示例,2输出水平数水平数是指1个3位,其各位的数字立方之和等于其本身的数量。 为了输出所有的水仙花数,可以使用3层for循环,最外层循环变量为3位的百位,中层循环变量为3位的十位,内层循环变量为一位,

8、在整体上判断该三位是否是水仙花数。 7.2 while和while语句是习语言循环结构的另一种实现方法。 与for句的构造有很大差异,根据场景的不同有优劣。两者也可以相互变换。 本节首先介绍while语句的使用方法,比较while语句和for语句之间的差异,最后以几个示例说明while语句的使用方法。 使用7.2.1while语句,while语句可以分为while标头和while主体。 while标头由牛鼻子字while和一个表达式组成,该表达式用作for标头中的第二个表达式的循环判定。 while主体是循环的主体动作,可以是单个语句,也可以是用大括号括起来的复合语句。 其标准格式使用whil

9、e (式)操作、7.2.1while语句,while语句的执行流程如下图所示。 7.2.2 while和for语句可以相互转换为所有while和for语句。 如果省略了负责初始化功能的第一个表达式和修改循环变量的第三个表达式(从1个while语句到for语句for语句标题),则for语句和while语句将完全相等。 即,while (表达式)操作等价: for (; 式: 操作的7.2.2 while语句和for语句,以及从2for语句到while语句的完整for语句,通过在公式位置调整中使用while语句,可以实现完全相同的功能。 如下所示: for (表达式1; 式2; 表达式3 )如果使

10、用操作while语句,则可以如下重写:表达式1 while (表达式2 )操作表达式3,7.2.3 while语句的使用示例,1求fibonacci数列的fibonacci数列,在第1、2项中都是1,从第3个数开始, 该数字具有数列的前两个数的和,即7.2.3whh的特征的此问题的解决方案是使用两个变量来保存在数列中的两个相邻个数,如f1和f2,f1在前面、f2在后面。 当f1和f2的初始值为数列的前两个数目,并且这两个数目继续在柱状计程仪中移位,直到f2变为大于n,则f1总是小于n的最大Fibonacci的数目。 把两个个数向后错开的过程可以使用while循环来实现。7.2.3 while语

11、句可以用实例求出两个整数的最大公约数和最小公倍数,再用辗转相除法求出最大公约数。 算法步骤对于两个已知数字m和n而言将m限制为n或更大。 如果m除以n得到实数r的r为0,则n为求出的最大公约数。如果算法结束的r不等于0,则n为r,m为n,前进到步骤2。 在获得m和n的最大公约数之后,可以从最小公倍数=两个整数的乘积/最大公约数的公式中获得两者的最小公倍数。 7.3 do-while和do-while语句是while语句的变体。 for语句和while语句都进入循环的条件判断,条件判断后再执行整个循环。do-while条件判定跳出循环,先执行整个循环后再执行条件判定。 本节介绍do-while语

12、句的使用,然后比较do-while语句和while语句之间的差异,最后介绍几个do-while语句的使用示例。 使用7.3.1do-while语句,do-while的标准形式与while语句类似,可以分为do本身和while判定语句。 do操作while (表达式): 注意:在while判定语句的末尾有分号。 使用7.3.1do-while语句,do-while语句的程序程序流程图如下图所示。 7.3.2 do-while语句和while语句,do-while语句和while语句的语法和功能非常相似,可以很容易地实现相互转换。 将do-while语句的标准格式转换为while语句时,while

13、 (表达式)操作和7.3.3 do-while语句使用示例: 显然,如果输入大于170的整数,则可以在n 70判断条件下使用循环实现此问题。 因此,判断条件之前必须对n分配值。 在这样的场景中,使用do-while语句比较合适。 7.3.3 do-while句子使用例,2输入7个整数本问题可以分析如下:使用1个变量修正输入数的个数,先判断输入数的个数(条件判断)。 如果不足7个,则输入一个数(循环体操作)。7.4 continue和break语句可以在for、while或do-while语句中有效地使用continue和break语句,从而提供更灵活、功能更丰富的循环结构。 本节介绍conti

14、nue和break语句在循环结构中的作用,并比较它们之间的差异。 使用7.4.1continue文件。 continue语句是控制语句,可以更改循环结构中语句的执行顺序。 continue语句仅包含牛鼻子词continue。 其标准形式为continue; 使用7.4.1continue语句,continue语句仅适用于for语句、while语句和do-while语句的循环主体。 其功能是结束这次的循环,就这样开始下一个循环。 示例: while (表达式1 )操作1; if (表达式2 )操作2 continue; 使用操作3,7.4.1 continue语句,在计程仪程序执行操作1后,确定

15、表达式2的值。如果为真,则执行操作2,然后执行continue语句。 此时,pull计程仪程序直接结束本次循环,跳过动作3,执行下一次循环的判定式。 使用7.4.1continue语句,程序的程序流程图如下图所示。7.4.2 continue语句和if语句、continue语句实际上提供了嵌套在循环结构中的选择结构,因此可以用if语句替换所有continue语句。 例如,在示例7-11中的for语句是for (ch=a; ch=z; 接口(0=接口%2); 电子打印(% c,ch ); for (ch=a; ch=z; 接口(1=ch %2)打印机(“% c”、ch )。 已被显而易见的是,在

16、该示例中,7.4.2 continue和if语句使用if重写比使用continue简单。 但是,在以下情况下,使用continue语句更合适:for (表达式1; 式2; 式3 ) if (选择式)/*此时的if的真正的分支已经是正常或重要的分支*/操作1的else /* else分支是异常或次要的分支*/操作2操作3操作4、7.4.2 continue语句和if语句,在该查询密码中,if的分支的操作简单,else的操作复杂if标头为if (! 式)这样可以调整分支顺序,但与正常且重要的分支置于if体内的原则相违背。 在这种情况下,可以使用continue语句。 如下所示: for (表达式1

17、; 式2; 表达式3 ) if (表达式)操作1; 连续; 操作2操作3操作4、7.4.3循环结构的break语句,第6.2节介绍了break语句在switch语句中的作用。 也可以在for、while和do-while语句的循环主体中使用break语句来更改循环中语句的执行逻辑。 与continue语句一样,break语句仅包含一个牛鼻子字break,其标准格式为: break;7.4.3循环结构中的break语句和循环结构中的break语句的功能是终止本地环路。 查询密码如下: while (表达式1 )操作1 if (表达式2 )操作2 break; 操作3、7.4.3循环结构的break语句,在计程仪程序执行至if标头的式2时,如果式2的值为真,则执行操作2,执行break语句而跳出while循环。 普计程仪拉姆的程序流程图如右图所示。 使用7.4.4break语句终止多级循环。 以上示例说明了使用break语句退出循环,但brea

温馨提示

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

评论

0/150

提交评论