第6章 循环程序设计.ppt
《第6章 循环程序设计.ppt》由会员分享,可在线阅读,更多相关《第6章 循环程序设计.ppt(68页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第6 6章章 循环程序设计循环程序设计主讲教师:郑立垠主讲教师:郑立垠计算机与通信工程学院计算机与通信工程学院 计算机应用技术系计算机应用技术系1、理解为什么使用循环结构2、熟练掌握while循环的使用3、熟练掌握do-while循环的使用4、理解while和do-while循环的区别5、熟练使用for循环6、理解break和continue语句的用法7、熟练使用嵌套循环本章内容内容C C 语言中的各种循环语言中的各种循环需要多次重复执行一个或多个任务的问题考虑使用循环来解决循环引例循环引例/计算计算sum=1+2+10#includeintmain()intn=1,sum=0;/循环初始化
2、循环初始化while(n=10)/循环条件循环条件sum=sum+n;/循环体循环体n+;printf(“Sum=%dn”,sum);return0;循环引例循环引例/计算计算sum=1+2+10/chap5ex3.c#includeintmain()intn=1,sum=0;/循环初始化循环初始化dosum=sum+n;/循环体循环体n+;while(n=10);/循环条件循环条件printf(“Sum=%dn”,sum);return0;while while 循环循环 while(表达式)语句;while 循环的一般语法:s=0;n=1;while(n=10)while(n=10)s=s
3、+n;s=s+n;n=n+1;n=n+1;计算表达式的值,当值为真(非0)时,执行循环体语句,一旦条件为假,就停止执行循环体。如果条件在开始时就为假,那么不执行循环体语句直接退出循环。工作原理示例/while循循环环示例示例#include int main()int num=1num=1,result;while(num=10num=10)result=num*10;printf(%d 10%d n,num,result);num+;num+;return 0;while while 循环示例循环示例while while 循环示例循环示例问题描述:写一个程序,要求它从摄氏温度0 度到250
4、 度,每隔20 度为一项,输出一个摄氏温度与华氏温度的对照表。while while 循环示例循环示例/chap5ex1.c#include int main()int c=0;double f;while(c=250)f=c*9/5.0+32.0;printf(C=%d,F=%7.2fn,c,f);c=c+20;return 0;问题描述:写一个程序,要求它从摄氏温度0 度到250 度,每隔20 度为一项,输出一个摄氏温度与华氏温度的对照表,同时要求对照表中的条目不超过10条。/chap5ex2.c#include int main()int c=0,count=1;double f;whi
5、le(c=250&count=10)printf(%d:,count);f=c*9/5.0+32.0;printf(C=%d,F=%7.2fn,c,f);c=c+20;count+;while while 循环示例循环示例输出:1:C=0,F=32.002:C=20,F=68.003:C=40,F=104.004:C=60,F=140.005:C=80,F=176.006:C=100,F=212.007:C=120,F=248.008:C=140,F=284.009:C=160,F=320.0010:C=180,F=356.00while while 循环循环while(循环条件)循环条件中使
6、用的变量需要经过初始化n=1;while(n =10)s=s+n;n+;while while 循环循环while(n =10).n+;while 循环主体中的语循环主体中的语句必须修改循环条件的句必须修改循环条件的值,否则会形成死循环值,否则会形成死循环while(1)真真do-while do-while 循环循环do 语句语句;while(表达式表达式);while 循环的一般语法循环的一般语法:do sum=sum+n;n+;while(n=10);它先执行循环体中的语句,它先执行循环体中的语句,然后再判断条件是否为真,然后再判断条件是否为真,如果为真则继续循环;如果如果为真则继续循环
7、;如果为假,则终止循环。为假,则终止循环。工作原理工作原理示例示例do-while do-while 循环示例循环示例 问题描述:写一个程序,要求它从摄氏温度0 度到250 度,每隔20 度为一项,输出一个摄氏温度与华氏温度的对照表。do-while do-while 循环示例循环示例 /chap5ex5.c#include int main()int c=0;double f;do f=c*9/5.0+32.0;printf(C=%d,F=%7.2fn,c,f);c=c+20;while(c=250);return 0;思考思考p如何计算sum=1+3+5+7+99的累加和?p如何计算sum
8、=2+4+6+8+100的累加和?p如何计算sum=1!+2!+3!+10!的累加和?嵌套嵌套 while while 循环循环q 嵌套 while 循环的语法while(i=10).while(i=j).外循环内循环只有在内循环完全结束后,外循环才会进行下一趟。嵌套嵌套 while while 循环示例循环示例/chap5ex6.c/计算sum=1!+2!+3!+10!的累加和#includeintmain()inti=1,j,sum=0;floatf;while(i=10)j=1;j=1;f=1;f=1;while(j=i)while(j=i)f=f*j;f=f*j;j+;j+;i+;su
9、m=sum+f;printf(“Sum=%-8dn,sum);嵌套嵌套 while while 循环示例循环示例问题描述:用*打印图案。图案如下所示:*嵌套嵌套 while while 循环示例循环示例问题描述:用*打印图案。图案如下所示:*问题描述:用*打印一个直角三角形图案。图案如下所示:*嵌套嵌套 while while 循环示例循环示例#include int main()int nstars=1,stars;while(nstars=10)stars=1;while(stars=nstars)printf(*);stars+;printf(n);nstars+;return 0;内层
10、循环控制每行打印*号的个数外层循环控制打印的行数输出:*嵌套嵌套 while while 循环示例循环示例问题描述:用“*”打印一个直角三角形图案。图案如下所示:*嵌套嵌套 while while 循环示例循环示例#includeintmain()charch;intcount=0;printf(Entercharacters:);do ch=getchar();if(ch=A|ch=a)count+;while(ch!=n);printf(CounterofaorA:%dn,count);任意输入一行字符,统计字母任意输入一行字符,统计字母a和和A的个数。的个数。比较比较 while whi
11、le 和和 do-whiledo-while循环循环while(循环条件循环条件)循环体;循环体;do 循环体;循环体;while(循环条件循环条件);do-while 循环是先执行循环是先执行后判断,所以,即使开后判断,所以,即使开始条件为假,循环体也始条件为假,循环体也至少会被执行一次。至少会被执行一次。while循环是先判断循环是先判断后执行,所以,如果后执行,所以,如果条件为假,则循环体条件为假,则循环体一次也不会被执行。一次也不会被执行。q 比较 while 和 do-while 循环的工作原理for(表达式1 ;表达式2 ;表达式3 )语句;for 循环的一般语法:循环的一般语法:
12、for for 循环循环counter=0;i n u m=1;c n t=1 0 0;counter=10;i n u m 0;c o u n t e r +;inum=inum+1;cnt-;分号用于分隔 for 循环的三个表达式1、计算表达式1的值,通常为循环变量赋初值;2、计算表达式2的值,即判断循环条件是否为真,若值为真则执行循环体一次,否则跳出循环;3、计算表达式3的值,这里通常写更新循环变量的赋值表达式,然后转回第2步重复执行;工作原理工作原理1234for for 循环示例循环示例#include int main()int number,count,factorial=1;p
13、rintf(n 请输入任意一个正整数:请输入任意一个正整数:);scanf(%d,&number);for(count=1;count=number;count+)factorial=factorial*count;printf(n%d的阶乘的阶乘=%dn,number,factorial);return 0;循环执行五次for for 循环示例循环示例计算sum=1+2+3+100#include#include intintmain()main()intint i=1i=1,sum=0;,sum=0;while(while(i=100i=100)sum=sum=sum+isum+i;i+;
14、i+;printfprintf(“Sum=%d(“Sum=%dn”,sum);n”,sum);return0;return0;#include#include intintmain()main()intinti,sum=0;i,sum=0;for(for(i=1i=1;i=100i=100;i+i+)sum+=i;sum+=i;printfprintf(Sum=%dn,(Sum=%dn,sum);sum);return0;return0;for for 循环示例循环示例任意输入10个数,计算平均值。#includeintmain()inti;floatx,sum=0;printf(Enter1
15、0numbersonebyone:n);for(i=1;i=10;i+)scanf(%f,&x);sum+=x;printf(Averageis%fn,sum/10);return0;for for 循环的表达式循环的表达式for循环中有三个表达式for语句中的各个表达式都可以省略分号分隔符不能省略for(;);可省略不能省略省略表达式省略表达式int i=1;for(;i=100;i+)sum+=i;相当于省去了为循环变量赋初值,此时应在for语句之前给循环变量赋初值省略表达式省略表达式for(i=1;i+).即不判断循环条件,也就是认为表达式2始终为真,这时应在循环体内设法结束循环,否则将
16、成为死循环省略表达式for(i=1;i=100;)sum=sum+i;i+;即省去修改循环变量的值,但此时应在循环体内设法结束循环省略三个表达式省略三个表达式for(;)printf(这将一直进行下去这将一直进行下去);i=getchar();if(i=X|i=x)break;即不为循环变量赋初值,不设置循环条件(认为表达式2为真值),不修改循环变量的值,无终止地执行循环体。此时应在循环体内设法结束循环,否则会成为死循环break break 语句语句pbreak语句可以改变程序的控制流pbreak语句用于do-while、while、for循环中时,可使程序终止循环而执行循环后面的语句pbr
17、eak语句通常在循环中与条件语句一起使用。若条件值为真,将跳出循环,控制流转向循环后面的语句p如果已执行break语句,就不会执行循环体中位于break语句后的语句p在多层循环中,一个break语句只向外跳一层break break 语句语句跳出 for 循环for(;)printf(这将一直进行下去这将一直进行下去);i=getchar();if(i=X|i=x)break;跳出 while 循环while(1)if(x=10)break;跳出 do-while 循环do if(x=10)break;while(x 15);break break 语句示例语句示例问题描述:统计从键盘输入的若
18、干个字符中有效字符的个数,以换行符作为输入结束。有效字符是指第一个空格符前面的字符,若输入字符中没有空格符,则有效字符为除了换行符之外的所有字符。#include int main()int count=0,ch;printf(n 请输入一行字符:);while(ch=getchar()!=n)if(ch=)break;count+;printf(n 共有%d 个有效字符。n,count);return 0;break break 语句示例语句示例内存内存chcountH0_ 请输入一行字符:Hello world 共有 5 个 有效字符1循环执行 5 次5continue continue
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第6章 循环程序设计 循环 程序设计
限制150内