第6章循环结构设计--C语言程序设计(谭浩强第三版)讲解_第1页
第6章循环结构设计--C语言程序设计(谭浩强第三版)讲解_第2页
第6章循环结构设计--C语言程序设计(谭浩强第三版)讲解_第3页
第6章循环结构设计--C语言程序设计(谭浩强第三版)讲解_第4页
第6章循环结构设计--C语言程序设计(谭浩强第三版)讲解_第5页
已阅读5页,还剩47页未读, 继续免费阅读

下载本文档

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

文档简介

1、第6章循环结构编程中,概述了goto语句和由goto语句构成循环的3种循环while、do-while、for循环的嵌套的几个循环的比较Break语句和continue语句程序示例,6.0循环结构的导入是循环中的组合图层性质变更选项。 这些问题可以引出概念“循环”。 简单来说,循环是指重复执行同一程序。6.1概要、c语言可实现的循环:循环while语句do while语句for语句由goto和if构成,从模型循环先判断后执行,从模型循环先执行到判断,由多功能、6.2 goto语句和goto语句构成循环,一般形式:语句、1 2 .用途:从与if文一起构成环结构的循环体飞出循环体外。 滥用goto

2、语句会破坏结构化,进程会变得不规则,所以应该限制使用。 除非是不得已(例如,可以大幅提高效率),否则使用。 说明:语句标签:1.用于定义程序内的位置。 2 .用标识符表示,开头不能是数字。 例如: goto 3t; 错误goto t3; 正确的3 .只能在可执行语句之前添加。 由if语句和goto语句构成循环,例1修正运算、#include main() int i、sum=0; i=1; 环形3360 if (I=100 )和=I。 I; 转环; 打印(% d,和); sum=sum1=1sum=sum2=3sum3=6sum=sum4=10 s um=sum 100=5050,分析:单击这

3、是一个累加问题sum=,然后使用while语句实现该类型的循环,并将表达式的值设置为真(除0以外) 用6.3while语句实现循环,一般形式:while (式)循环体语句,执行过程:特征:先判断式后执行循环体。 注意:循环体可能一次也不执行。 循环之前,必须为循环控制变量指定初始值。 如果循环主体包含多个语句,则必须将其显示为复合语句。 回圈主体需要变更回圈控制变数值的叙述句(使回圈朝向结束的叙述句,否则为死回圈)。 无限循环: while(1)循环体循环控制条件多样化while (i=100) while(getchar ()!=n) n; 循环体可以是空的: while(c=getchar

4、 () ) )!=A ); c=getchar (),直到从键盘输入字符并输入a为止; 威尔! c=getchar (); 一般形式:while (式)循环体句、循环控制式、解析:累加的问题s=1 2 3 100、s=0 s=s 1 s=s 2 s=s 3、和的新值、s s=0; k=1; 威尔(k=100 ) s=sk。 k; printf(“s=%d,s”),注意: s,k的初始值和位置在do-while语句中实现到类型循环,执行整个循环,如果表达式的值为真(非0 ),则再次执行整个循环如果表达式为假(0),则退出循环。 6.4 do-while语句,常规格式:do循环语句while (表

5、达式); 执行过程:先执行循环体,然后再判断公式。 循环体至少执行一次。 do-while语句可以转换为while语句。 不能省略! 别忘了! 不要! 例如,用do-while语句进行修正,#include main() int k,s; s=0; k=1; 威尔(k=100 ) s=sk。 k; printf(“s=%d,s”)、#包括主机() int k,s; s=0; k=1; do s=s k; k; while(k=100 ); printf(“s=%d,s”),先判断,然后再判断,运行结果:1 sum=55再运行: 11 sum=0,运行结果:1 sum=55再运行: 11 sum

6、=11,使用while语句和do-whiile语句但是,如果while后面的表达式从头开始为假(0值),则两个循环的结果不同。 教材117例6.4,6.5 for语句,最简单的应用形式:for (循环变量的初始值循环条件循环变量的增值环体语句。 例如: for(i=1; i=100; 和=I; 一般形式:for (式1; 式2; 如果省略了表达式3循环主体语句、1 .表达式1,请在for之前为循环变量指定初始值。 例如: i=1; 福尔(; i=100; 一)和=和; 在运行时,跳过“求解表达式1”步骤,其他步骤保持不变。 2 .在式2被省略的情况下,不判断循环条件,成为“死循环”,需要在整个

7、循环中导入break语句来结束循环。 例如: for(i=1; 一)和=和; 这相当于I=1;while (1)和=和1; I; 如果省略了死循环3 .表达式3,则需要在循环中更改循环条件以使循环成功结束。 例如: for(k=1; k=3; s=s k; k; for循环的说明:for循环的说明:5. 3式可以省略。 例如: for (; 句子无限循环不设定初始值,不判断条件,循环变量没有附加值。 不结束地执行循环体。 6 .式2通常是关系式或逻辑式,但也可以是只要值不等于0,就执行整个循环的数值式或字符式。 例如: for(k=1; k-4反应堆; k )s=s k; 仅在k的值为4时退出

8、循环。 k-4是数值表达式。 例如#include main() char c; 福尔(; (c=getchar () )!=n; 打印机(% c,c ); for语句只有公式2,没有公式1和公式3。 它的作用是每次读入字符时输出该字符,直到输入换行符为止。 运行状况:计算机(输入)计算机(输出),例如#include main() int i、c; for(i=0; (c=getchar () )!=n; i=c ); 该for句的环体是空的句子,将本来应该在环体内处理的内容放入式3。 在式2中,首先从终端向c接受1字符的分配,接着判断c的值是否不等于换行n,在不等于n的情况下执行整个循环。

9、 例如,用for语句进行修正,#include main() int k,s; s=0; k=1; 威尔(k=100 ) s=sk。 k; printf(“s=%d,s”)、#包括主机() int k,s; s=0; k=1; do s=s k; k; while(k=100 ); printf(“s=%d,s”),先进行判断,然后再进行判断,#include main() int k,s; s=0; for(k=1; k=100; k ) s=s k; printf(“s=%d,s”)、6.6个周期的比较并不倡导以goto配置周期。 2 .关于循环控制:如果循环控制条件不为零,则执行循环主体

10、语句,否则退出循环。 3 .一个周期可以解决的问题,可以使用其他两个,但便利性不同。 4. while循环一般使用在不确定循环次数的情况下,for循环一般使用在不确定循环次数的情况下(也使用在未确定循环次数的情况下),一般需要执行至少一次do-while循环的情况下。 5.for-while循环和while循环在执行整个循环之前,可能一次也不执行,因为do-while循环会先执行整个循环,并且至少执行一次整个循环,以确定条件是否为真。 6. while循环、do-while循环和for循环可以使用break语句跳出循环,使用continue语句退出此循环。 2 .环体句可以是任何句子,可以是简

11、单句、复合句、空句。 6.7回路嵌套,回路嵌套是什么? 中的组合图层性质变更选项。 一个回圈的回圈主体包含另一个回圈,称为回圈巢状。 这种嵌套过程总是可以重复的。 中的组合图层性质变更选项。 在一个循环外围一个循环称为双循环。 一个循环外围的两层循环称为三重循环。 在一个环之外包围多个环称为多重环。 while、do-while、for可以相互嵌套自由组合。 1 .一个循环体内包含另一个完整的循环结构,称为嵌套循环。 2 .可以将循环嵌入嵌入的循环中以配置多重循环。 3 .三个环可以相互嵌套。下面的一些是合法的嵌套形式: (1) while () while ().(4) while () d

12、o while (); 四、五。 (三)四(四)五(五)六(六)六; 一,六,六。 while (); (2)转移。 while (); 中的组合图层性质变更选项。 /在画面上打印8行7列的星形矩阵。#包括主() inti; for(i=0; i7; I )打印(* ); 打印第一行星号*/printf(n ); for(i=0; i7; I )打印(* ); 列印第二行星号码*/printf(n ); for(i=0; i7; I )打印(“*”); /*打印第8行星号*/例:双重循环实现上例(打印8行7列星号矩形)。#包括主() int I、k; for(i=0; i8; 一)四(k=0;

13、 k7; k )打印机(* ); printf(n ); 6.8 break语句和continue语句、break语句: break; 功能:从switch结构跳出的循环语句中,结束该级别的循环跳出。 例如,修正从r=1到r=10的圆面积,在面积大于100之前停止。#定义pi3. 1415主() intr; 浮动区域; for(r=1; r 100 )中断; 打印机(r=% d、区域=%.2 fn、r、区域); 运行结果: r=1、area=3.14 r=2、area=12.57 r=3、area=28.27 r=4、area=50.26 r=5、area (2) break语句在循环中使用时

14、,始终与if一起使用,并满足条件(3)在循环主体中使用switch语句,break显示在switch语句中时,只需退出switch而不影响循环。 (4)break只能结束包含它的本地层结构并跳出,不能跳出多重循环。 例:一旦输入了字母,就直接修改输出程序,直到输入完成下一个功能的q键结束为止,即使输入其他字符也会忽略。#“包括”stdio.h“主() char ch; while(1) ch=getchar (); 中断(ch=q| ch=q )。 else if(ch=A,6.8 break语句和continue语句,continue语句: continue; 功能:结束本次循环,跳过本层循

15、环体中尚未执行的语句,接着判断是否执行循环体。 说明: continue仅用于循环语句。 总是与if一起使用,并且输出例如不能被100200除尽的整数。 main() int n; for(n=100; n=200; n ) if (n %3=0)连续性。 打印机(“% d,n”; 结束本次循环后,循环体的剩馀佗文被忽略,执行式3,进入下一个循环。 continue始终创建if的嵌入语句。 这个方法是if (n %3)打印机(“% d”,n ); main() int n; for(n=100; n=200; 中断(n %3=0)。 打印机(“% d,n”; 说明: continue语句仅结束本次循环break语句结束本地级循环的执行要考虑使用goto语句从许多重复循环的内层跳到最外层,但尽量不要使用。 指示:for () for () if () goto结束。 结束:打印(错误);continue语句和break语句goto的区别、break;连续;

温馨提示

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

评论

0/150

提交评论