《循环控制结构》多媒体课件.pptx_第1页
《循环控制结构》多媒体课件.pptx_第2页
《循环控制结构》多媒体课件.pptx_第3页
《循环控制结构》多媒体课件.pptx_第4页
《循环控制结构》多媒体课件.pptx_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

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

文档简介

1、第5章,环路控制结构,1。本章知识点:while语句的一般形式和语句应用的一般形式,应用的一般形式.while语句和应用程序的多重循环结构使用break语句和continue语句,2,5.1 while语句,一般的语句形式如下:while (expression)循环语句描述:while语句属于“when type”循环。图5.1 while语句流程图,说明:(1)while是一个关键字。while后面括号中的表达式通常是关系表达式或逻辑表达式,但也可以是任何C语言中的合法表达式。(2)循环语句可以是一条语句或多条语句。如果循环语句包含多个语句,则循环语句需要以复合语句的形式用一对花括号 括起

2、来。而(表达式)循环语句示例5.1为前100个自然数之和。#include int main() int n,sumn=1;sum=0;/*变量赋值初始值*/而(n=100)sum=sum n;/*累加和求和*/n;/*修改基本数据项n*/printf(总和=%dn,总和);返回0;五、需要注意的几个问题:(1)累加求和算法。该程序采用的算法思想称为累加和,即不断用新的累加值替换变量的旧值,最后得到求和结果。变量SUM也称为“累加器”,其初始值通常为0。(2)变量必须被赋予一个初始值。(3)正确判断条件的边界值。(4)避免“无限循环”。(5)循环体不能执行。(while后面括号中的表达式通常是

3、关系表达式或逻辑表达式,但也可以是其他类型的表达式。示例5.2使用while语句查找n!#include int main() int n,I=1;双总和=1;Printf(请输入正整数:);Scanf(%d,7,循环三个元素之间的关系。所谓的“循环三要素”是指给循环变量赋值、判断控制表达式和修改循环变量。一般来说,在进入循环之前,您应该为循环变量分配初始值,以确保循环能够正常启动;判断循环变量是否达到控制表达式中循环的结束值;修改循环体中的循环变量,使循环通常趋于结束。写程序时要注意他们的位置关系。示例5.3编写程序,输入字符序列,并计算大写字母、小写字母、数字、空格和其他字符的数量。int

4、 main()char ch;int a,b,c,d,e;a=b=c=d=e=0;而(ch=getchar()!=n)如果(ch=A,9,5.2 for语句,for语句的一般形式如下:for(表达式1;表达式2;表达式3)循环语句的描述:for语句属于“计数”循环。11,for语句的流程图,for语句最常见和最简单的形式,For(循环变量赋值初始值;流通条件;循环变量增量),12,例5.1计算前100个自然数的和。#include int main() int n,sum=0;对于(n=1;n=100n)总和=总和n;printf(总和=%dn,总和);返回0;例5.4让n=30,写一个程序,

5、计算并输出S(n)的值。s(n)=(1 * 2)/(3 * 4)-(3 * 4)/(5 * 6)(5 * 6)/(7 * 8)(-1)(n-1)*(2n-1)* 2n/(2n 1)*(2n 2),# include # include int main()int n;浮点s=0;对于(n=1;n=30n ) s=s幂(-1),(n-1)*(2 * n-1)* 2 * n)/(2 * n 1)*(2 * n 2);printf(s(n)=%f,s);返回0;13,关于for语句的一些解释:(1)循环语句可以是一个简单的语句,也可以是由一对花括号括起来的复合语句。如果是语句,也可以用for写在一行

6、上,这样程序看起来更简洁;如果循环体包含多条语句,最好是开始新的一行,采用由一对花括号括起来的复合语句形式,以提高程序的可读性。(2)省略表达。for语句中的所有三个表达式都可以省略,但不能省略两个分号。对于(循环变量的初始值;流通条件;循环变量增量),对于(表达式1;表达式2;表达式3)循环语句,示例5.5编写一个程序输出所有水仙花。水仙号是指一个3位数的数字,每个数字的立方和等于数字本身。例如:153=13 53 33=153,所以水仙花的数量是153。int main() int a,b,c,I;对于(i=100i=999。I)a=I/100;b=i/10;c=i;如果(i=a*a*a

7、b*b*b c*c*c) printf(%dn,I);printf(n);15,例5.11来确定m是否是质数。程序分析:所谓的质数是一个正整数,除了自身和1之外没有其他因素。例如,2、3、5和7是质数。int main() int m,I,k,标志;/*定义标志变量*/scanf (%d,16,5.3 do While语句,for语句的一般形式如下:do循环语句While表达式;描述:do while语句属于“直到类型”循环。(1)“同时表达”在1)dowhile语句中,下列分号不能省略,它与while语句不同。(2)dowhile语句首先执行循环语句,然后判断表达式,因此无论条件是否成立,循

8、环都将至少执行一次。而语句首先判断表达式,然后执行循环语句。因此,如果第一次判断表达式不为真,循环将不会执行一次。注:(1)当计算机解决实际问题时,经常使用类似于本程序的“穷举法”。用“穷举法”解决的问题一般有这样的特点:如果问题有解,一个或多个组必须都在某个集合中;如果这个集合中没有解,那么这个集合之外就一定没有解。这样,在解决问题时,您可以逐一列出集合中的元素,以验证它是否是问题的解决方案。本主题是逐一验证100999之间的所有数字,最后找出答案。(2)使用关系运算符“=”代替“=”,后者是赋值运算符。在C语言中,这两个运算符在形式上是不同的,所以我们应该注意它们的区别。20,图5.5执行

9、while语句的流程图,While语句和do While语句的比较:一般来说,对于同一个问题,使用While语句或dowhile语句的结果是相同的,但有时是不同的。比较以下两个程序:21,#include int main() int n,sum=0;scanf(%d,#include int main() int n,sum=0;scanf(%d,int main()char c;do c=getchar();同时(c!=甲);Printf(验证成功n);返回0;示例5.6编写一个程序来验证用户输入的密码。如果用户输入的密码与预设密码不一致,需要重新输入,直到与预设密码一致。void mai

10、n() double n=1.0,d=1.0,pi=0.0int符号=1;do pi=pi d;n=N2;符号=-符号;/*更改数据项的符号*/d=符号/n;/*查找数据项*/while(fabs(d)=1.0e-6);pi=4.0 * piprintf(pi=.7lfn,pi);三种循环的比较:(1)while和dowhile语句一般实现符号循环,即循环的数量无法预测,循环只能在一定条件下进行;大多数for语句实现计数循环。(2)一般来说,while和dowhile语句的循环变量在循环语句之前被赋予初始值,循环结束条件是while之后括号中的表达式,循环体包含循环变量修改语句;通常,for循

11、环是一行中有三个元素的循环。因此,for循环语句更强大,形式更简单,使用更灵活。(3)while和for首先测试循环条件,然后执行循环语句,该语句可能不会执行一次。而dowhile语句首先执行循环语句,然后测试循环条件,因此循环至少执行一次。5.4多重循环结构、嵌套循环、并行循环、交叉循环(错误)和嵌套循环意味着循环语句的循环完全包含另一个完整的循环结构。上述三种循环结构(while循环、for循环和do-while循环)可以以任何组合方式嵌套。循环嵌套包括双循环嵌套和多循环嵌套。然而,通常有两三个。如果嵌套层数过多,程序的可读性和执行效率将会降低。在多循环的情况下,应为外循环和内循环选择不同

12、的循环控制变量。,26,双环嵌套:具有两个嵌套层次的循环嵌套的执行过程如下:首先,判断外环的条件,当外环条件成立时,按顺序执行外环语句,当内环条件满足时,判断内环条件,当内环条件成立时,重复执行内环语句。当内部循环因为循环条件未建立而退出时,它返回到外部循环并按顺序执行外部循环体的其他语句。外部循环体执行一次后,它再次判断下一个外部循环条件。如果条件仍然成立,重复上述过程,直到外部循环条件不成立,退出双循环嵌套,稍后执行其他语句。示例5.8编写一个程序,输出1000以内的所有完全数。如果一个整数的因子之和等于这个数本身,这个数就叫做完全数。例如,1,2和3是6的因子,6=1,2,3,所以6是一个完全数。程序分析:这个问题应该分为两个步骤。第一步:确定一个数n是否完美。您可以将变量s定义为“累加器”。这个问题仍然需要使用上面提

温馨提示

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

评论

0/150

提交评论