《《循环结构》课件.ppt》由会员分享,可在线阅读,更多相关《《循环结构》课件.ppt(24页珍藏版)》请在三一办公上搜索。
1、程序设计|第三章,循环结构,第三章,程序设计|第三章,什么是循环结构?循环语句练习和综合设计,本讲主要内容,程序设计|第三章,循环结构是通过对条件的判断来重复执行某些程序语句或程序段,C语言中是用for语句或while语句或dowhile语句来构成循环结构的。循环结构的主要功能是重复执行某些语句或某段程序。,循环结构,程序设计|第三章,问题:在唱歌等大奖赛评分时,一般要有若干名评委,记分规则为:去掉一个最高分,去掉一个最低分,再算平均分。设按百分制计分,试设计一个算分程序。,用循环来累计总得分,引例,程序,程序设计|第三章,语句形式:for(表达式1;表达式2;表达式3)语句;,for语句,程
2、序设计|第三章,例 从键盘上输入张三同学五门课程的成绩67、92、78、83、75,计算出平均成绩并输出。#include main()int i,sum,score;sum=0;for(i=1;i=5;i+)scanf(%d,第i次循环 i=5 的值 sum的值 1 真 0+67 2 真 67+92 3 真 159+78 4 真 237+83 5 真 320+75 6 假 结束循环,for语句举例,程序设计|第三章,例 从键盘上输入一个大于2的整数n,判断n是不是素数。只能被1和它本身整除的整数称为素数。在数学中,要判断n是否为素数,通常让n除以2到n的平方根之间的每一个整数,如果n能被2到
3、n的平方根之间的某个整数整除,则说明n不是素数,否则n一定是素数。,for语句举例,程序,程序设计|第三章,省略表达式1i=1;for(;i=10;i+)sum=sum+i;,for语句的任何一个表达式都可以省,但不能省略分号。例如:,省略表达式3for(i=1;i=10;)sum=sum+i;i+;,省略表达式2时,循环将变成死循环,for语句中可应用逗号表达式,使两个或多个控制变量同时控制循环for(i=0,j=10;i=3000)count=100;在循环体外的语句不受循环的控制,在循环体内的语句受循环的控制。,使用for语句应注意的问题,程序设计|第三章,语句形式:while(表达式)
4、语句;,执行过程:先计算表达式的值,当表达式的值为非 0 时执行语句;为 0 时执行循环的后继,while语句,程序设计|第三章,例 从键盘上输入张三同学五门课程的成绩67、92、78、83、75,计算出平均成绩并输出。对下面的程序进行修改,用while代替for#include/*例3.1的程序*/main()int i,sum,score;sum=0;for(i=1;i=5;i+)scanf(%d,while语句举例,程序设计|第三章,例 计算1至20之间的奇数之和及偶数之和。说明:判断一个数n是否为偶数的常用方法为:n%2=0。判断一个数n是否为某个数的倍数的常用方法为:n%某个数=0,
5、如 n%5=0 可用于判断n是否为5的倍数。,程序,while语句举例,程序设计|第三章,例:求n的值main()int n,sum=0;n=1;while(n=10)sum=sum+n;n+;printf(1-10的累加和为%d,sum);,问题:1.语句 n=1;能放在循环体内吗?2.语句 n=10 中的等号能去掉吗?3.语句 n+能去掉或放在循环外吗?4.如要求 1到 10 的累乘 应怎样修改程序?,如何修改程序可求2+4+6+10的值,先判断后执行循环体,使用while语句应注意的问题,程序设计|第三章,语句形式:do 语句;while(表达式);,执行过程:先执行语句,后判断条件。表
6、达式的值为非0时,继续执行语句;表达式的值为0时,执行循环的后继。,Do-while语句,程序设计|第三章,例 求1!+2!+3!+4!+20!的值。main()float n=1,sum=0,t=1;dot=t*n;sum=sum+t;n+;while(n=20);printf(1!+2!+3!+20!=%e n,sum);,第n次循环 t的值 sum的值 n=20的值1 1!0+1!真(n=2)2 2!1+2!真(n=3)3 3!3+3!真(n=4)4 4!9+4!真(n=5)5 5!33+5!真(n=6)20 20!假(n=21)结束循环,Do-while语句举例,程序设计|第三章,在循
7、环体内又包含另一个完整的循环结构称为循环嵌套。内层循环中再包含其它循环结构,称为多重循环嵌套。,C语言中的三种循环语句(for、while、dowhile)可以互相嵌套,构成所需的多重循环结构,循环嵌套时,内层循环必须被完全包含于外层循环内,不允许循环结构交叉。,循环嵌套,程序设计|第三章,例3.10 打印由星号组成的5行5列的矩形*以下循环语句可在同一行上输出五个星号:for(j=1;j=5;j+)printf(*);若让该循环语句执行五次,且每执行一次输出一个换行,就可以输出五行五列星号,双重循环的执行过程如下:i=1时,j=1,2,3,4,5,输出5个*并换行i=2时,j=1,2,3,4
8、,5,输出5个*并换行i=3时,j=1,2,3,4,5,输出5个*并换行i=4时,j=1,2,3,4,5,输出5个*并换行i=5时,j=1,2,3,4,5,输出5个*并换行,for(i=1;i=5;i+)for(j=1;j=5;j+)printf(*);printf(n);,多重循环的执行过程为:外循环跨一步,内循环转一圈,循环嵌套举例,程序设计|第三章,for(i=1;i=5;i+)for(j=1;j=5;j+)printf(*);printf(n);,要打印如下图形应如何修改下面的双重循环:*,循环嵌套举例,要求:在VC+6.0环境下,通过师生互动的形式完成该题的编程,程序设计|第三章,语
9、句形式:break;,执行过程:终止switch语句或循环语句的执行,跳出当前break所在的控制结构,转去执行后继语句。,double e=1.0,u=1.0;int n;for(n=1;n=20;n+)u=u/n;e=e+u;if(u1.0e-7)break;printf(n e=%lf(n=%d)n,e,n+1);在多重嵌套循环中,break语句只能跳出它所在的那一层循环结构,而不能同时跳出多层循环,break语句,程序设计|第三章,语句形式:continue;,执行过程:终止本次循环体的执行,即跳过循环体中continue后面的语句,直接开始下一次循环体的执行。,char ch;int
10、 count=0;while(1)ch=getchar();if(ch=*)break;if(ch9|ch0)continue;count+;printf(count=%d n,count);在while和do-while循环结构中,continue立即转去检查循环控制表达式,在for循环结构中,则立即转向计算表达式3,对循环控制变量增量或减量。,continue语句,程序设计|第三章,例:本例模拟了一个物体的自由落体过程。从“高空”释放一个物体,它在下降的过程中速度会越来越快,落地反弹后在上升的过程中它的速度会越来越慢。图3-14显示某一时刻物体所处的位置。,程序,综合设计,程序设计|第三章
11、,语句while(!E);中的表达式!E等价于 A)E=0 B)E!=1 C)E!=0 D)E=1 下面程序段的运行结果是_。a=1;b=2;c=2;while(abc)t=a;a=b;b=t;c-;printf(%d,%d,%d,a,b,c);A)1,2,0 B)2,1,0 C)1,2,1 D)2,1,1下面程序段的运行结果是_。x=y=0;while(x15)y+;x+=+y;printf(%d,%d,y,x);A)20,7 B)6,12 C)20,8 D)8,20,习题(单选题),程序设计|第三章,以下程序执行后的输出结果是_。main()int x=15;while(x10,习题(填空题),程序设计|第三章,本章详细介绍了循环结构。循环结构包括for、while、dowhile三个循环语句。三种循环可以用来处理同一问题,一般情况下它们可互相代替,但设置的表达式条件会有所不同。读程序main()int i,j;for(i=1;i5;i+)for(j=2;j=i;j+)putchar(#);,问题:1.两层循环各执行了多少次?2.程序运行结束时循环变量i和j的值为多少?,小结,程序设计|第三章,复习教材第三章内容预习教材第四章内容上机实习内容:实验 循环结构完成第三章的全部习题,本章课后作业,
链接地址:https://www.31ppt.com/p-5028416.html