C语言 循环结构程序设计.ppt_第1页
C语言 循环结构程序设计.ppt_第2页
C语言 循环结构程序设计.ppt_第3页
C语言 循环结构程序设计.ppt_第4页
C语言 循环结构程序设计.ppt_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

第5章循环结构程序设计,5.1循环的概念,5.2.1while循环语句,格式:while(表达式)语句;功能:,5.2.1while循环语句(例),例:计算1+2+3+100main()intsum=0,i=1;while(i=100)sum=sum+i;i+;printf(“%d”,sum);注意:当循环体包括多条语句时,应用组成复合语句,5.2.1while循环语句,while主要用于循环次数难以确定的情况例:从键盘上连续输入若干字符(以空格为结束标记),统计字符个数(空格不计);#include“stdio.h”main()intn=0;charch;ch=getchar();while(ch!=)或while(ch=getchar()!=)n+;n+;ch=getchar();printf(“%d”,n);,5.2.2do-while循环语句,格式:do语句;while(条件表达式);功能:,5.2.2do-while循环语句(例),例:计算1+2+3+100main()intsum=0,i=1;dosum=sum+i;i+;while(i=100);printf(“%d”,sum);,5.2.2do-while循环语句(例),例:从键盘上连续输入若干字符(以空格为结束标记),统计字符个数(空格不计);#include“stdio.h”main()intn=-1;charch;don+;ch=getchar();while(ch!=)printf(“%d”,n);,5.2.3do-while与while比较,一般情况下,用while语句和用do-while语句处理同一问题时,若二者的循环体部分是一样的,它们的结果也一样;但当表达式的值一开始就为假(0),两种循环的结果就不同;1)main()2)main()intsum=0,i;intsum=0,i;scanf(“%d”,5.3for循环语句,基本格式:for(表达式1;表达式2;表达式3)语句;功能:,5.3for循环语句(例),例:计算1+2+3+100main()intsum=0,i;for(i=1;i=100;i+)sum=sum+i;printf(“%d”,sum);,5.3for循环语句(注),1)表达式1常用于给循环变量赋初值;表达式1可省略;如:sum=0;i=1;for(;i=100;i+)sum=sum+i;2)表达式2常是关系或逻辑表达式;表达式2省略时,相当于表达式值永远为“真”,循环将永远执行下去,形成死循环。如:sum=0;for(i=1;i+)sum=sum+i;3)表达式3常用来修改循环变量的值;表达式3可以省略;如:sum=0;for(i=1;i=100;)sum=sum+i;i+;,5.3for循环语句(注),4)表达式1、表达式3还可以是逗号表达式如:for(sum=0,i=1;i=100;i+)sum+=i;for(sum=0,i=1;i=100;i+,i+)sum+=i;5)循环体是多条语句,则用括起构成复合语句,5.3for循环语句(例),当循环的次数确定时,常用for循环语句。如果循环次数不确定,即终止条件不是有确定的次数控制时,常用while或do-while。例:从键盘上连续输入若干字符(以空格为结束标记),统计字符个数(空格不计);#include“stdio.h”main()intn=0;charch;for(;(ch=getchar()!=;n+);printf(“%d”,n);,5.4循环嵌套,在某个循环语句的循环体内又包含一个循环语句,称为循环的嵌套,也称为多重循环;三种循环可以互相嵌套:(书P113)外面的循环语句称为“外层循环”,外层循环中的循环称为“内层循环”;注:内外层循环体不能出现交叉现象:while()dowhile();,5.4循环嵌套(例),例:求1!+2!+3!+4!+5!main()ints=0,i,m,x;for(m=1;m=5;m+)for(i=1,x=1;i=m;i+)x=x*i;s+=x;printf(“s=%dn”,s);,5.5break和continue,1、break语句格式:break;break语句的两种主要功能:在switch语句中的case之后,以便在该情况结束之后不再去执行后面其它的case语句;用在循环语句中,终止当前循环语句继续往下执行,并直接跳出当前循环层,到该循环体外的后面一条紧接着的语句处;,break语句(例),main()intx;for(x=1;x=6;x+)if(x%2=0)break;printf(“%d”,x);printf(“outofloop”);,2、continue语句,格式:continue;continue语句的主要功能:结束本次循环;(循环体内,continue之后的所有语句皆忽略不管,直接进入下一轮循环)和break的比较(书P115),2、continue语句(例),main()intx;for(x=1;x=6;x+)if(x%2=0)continue;printf(“%d”,x);printf(“outofloop”);,5.6三种循环语句的比较,1)三种循环都可以用来处理同一问题;2)while/do-while的循环体中应对循环变量的值进行修改;for语句中可以在循环体中修改,也可以在表达式3中修改;3)while/do-while中,循环变量在while/do-while之前赋初值;for语句中,可以在for语句之前,也可以在表达式1中赋初值;4)一般,for语句主要用于循环次数明确的情况;while/do-while用于循环次数不明确的情况;,5.8应用举例,例1:从键盘上输入10个数,求其平均值1)main()intn;floatf,sum;for(n=0,sum=0;n10;n+)scanf(“%f“,2)main()intn;floatf,sum;n=0;sum=0;while(n10)scanf(“%f“,3)main()intn;floatf,sum;n=0;sum=0;doscanf(“%f“,练习1(程序设计),1、求1100之间所有偶数的和;2、将小写字母az分别按正序和反序输出;3、输入一批正整数(三位),计算并输出这些数各位数字之和,直到输入的数为0为止;4、从键盘上输入若干正整数,求其中最大数和最小数,输入的数以0为中止标记;5、依次输入10个数,输出其中最大数和最小数;,6、输入10个整数,统计并输出其中正数、负数、零的个数;7、输出100200间既能被5又能被13整除的数;8、求出所有各位数字的立方和等于1099的3位整数;(正数)9、设n的值为一个正整数,判定n为几位数。10、输入一个数,判断该数是否是素数;,练习2,1、设i=0为int型变量,执行完下列语句后I的值为:doi+;while(i10);2、设i,j,k均为int型变量,则执行下列for循环后,k值为:for(i=0,j=5;i=j;i+,j-)k=i+j;k+=1;3、假定a和b为int型变量,则执行以下语句后b的值为:a=1;b=10;dob

温馨提示

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

最新文档

评论

0/150

提交评论