C语言程序设计第6章.ppt

上传人:za****8 文档编号:13189333 上传时间:2020-06-06 格式:PPT 页数:18 大小:278KB
返回 下载 相关 举报
C语言程序设计第6章.ppt_第1页
第1页 / 共18页
C语言程序设计第6章.ppt_第2页
第2页 / 共18页
C语言程序设计第6章.ppt_第3页
第3页 / 共18页
点击查看更多>>
资源描述
第6章循环控制,到目前为止,如果要求同学们写一段程序来计算1+2+3+9+10的值,那么有的同学可能这样写(excch6intro_1.c):,#includevoidmain()ints;s=1+2+3+4+5+6+7+8+9+10;printf(nsumis%d,s);,也有的同学可能这样写(excch6intro_2.c):#includevoidmain()ints=0;s=s+1;/*把1加到s上,s的值为1*/s=s+2;/*把2加到s上,s的值为3,为前两项之和*/s=s+3;s=s+4;s=s+5;s=s+6;s=s+7;s=s+8;s=s+9;s=s+10;printf(nsumis%d,s);,可以看出,在这种实现方法中,反复进行如下操作:s=s+i;其中,i代表累加项,i由1增到10,显然,当累加的项数较多时,这两种方法的局限性就凸现出来。我们可以借助于C语言的循环结构来加以实现。,循环结构,循环结构作为3个基本结构之一,它的作用是反复执行某些操作。,当型循环结构,直到型循环结构,在C语言中,可以用以下4种方式实现循环结构:goto语句while语句dowhile语句for语句,goto语句,goto语句的一般形式为:goto语句标号;,gotoABC;ABC:,其中,语句标号是一种标识符,它用来标示程序中的某个语句,请不要忘记冒号。另外,语句标号对所标示的语句没有影响。,当程序执行到goto语句时,goto语句会使得程序跳转到语句标号所标示的位置继续执行。,有时,人们把goto语句与if语句配合使用,来实现某些操作的重复执行。例如,求1+2+10的值(excch6goto_sum.c)。,因此,goto语句与if语句相配合,是实现循环结构的一种手段。,但是,由于goto语句的滥用会导致程序的可读性变坏,所以结构化程序设计主张限制使用goto语句,除非使用goto语句能大大提升程序的执行效率。,while语句,while语句可用来实现当型循环结构,其一般形式为:while(表达式)语句,while(x=0)y=y+x*x;x-;,例如,while(j=0,while语句的执行过程是:首先求解表达式,如果值为真,则执行语句;然后再来求解表达式,如果值为真,则执行语句,如此重复,直到某一次表达式的值为假,while语句结束。,循环体,循环体,while语句的特点是:先判断、后执行。,其中,语句部分被称为循环体,循环体既可以是单条语句,也可以是复合语句。,while语句举例,例一、用while语句来实现的累加求和(excch6whilesum.c)。,例二、intx=3;while(x5)x=x/6;printf(”x=%d”,x);,例三、intk=4,s=0;while(k0)s+=k;,注意:循环体一次也不执行,注意:循环体中缺乏使循环趋于结束的语句,造成死循环。,注意:若循环体包含多个语句,必须用复合语句。,intk=4,s=0;while(k0)s+=k;-k;,intk=4,s=0;while(k0);s+=k;-k;,注意:分号多余,dowhile语句,dowhile语句可用来实现直到型循环结构,其一般形式为:do语句while(表达式);注意:while后要有分号。,例如,dos=j*8;-j;while(j=0);,dowhile语句执行过程是,首先执行语句,然后求解表达式,如果值为真,则再次执行语句;然后再来求解表达式,如果值为真,则执行语句,如此重复,直到某一次表达式的值为假,dowhile语句结束。,dowhile语句的特点是:先执行、后判断。,dowhile语句举例,例一、用dowhile语句实现的累加求和(excch6dowhlsum.c)。,例二、intk=-1,s=8;dos=s/3;k+;while(k10);printf(”n%d”,k);,例三、intk=1,s=0;dos=s+2*k;k+;while(k=4);,注意:循环体至少执行一次,注意:1由于=写成=,造成死循环;2循环体中应包括使循环趋于结束的语句。,for语句,for语句是一个使用频繁的循环语句,它的一般形式为:for(表达式1;表达式2;表达式3)语句,for语句的执行过程是:首先求解表达式1,然后求解表达式2,如果值为真,则执行语句,然后再求解表达式3;然后再来判断表达式2的值,如此重复,直到某一次表达式2的值为假,for语句结束。,例如,for(k=0;k5;k+=2)y+=k*k;,由流程图可以看出,它实际上等价于:表达式1;while(表达式2)语句表达式3;,for语句最常用的形式是:for(循环变量赋初值;循环条件;循环变量增值或减值)语句,例如,for(k=0;k=0,for语句举例,例一、用for语句实现的累加求和(excch6forsum.c)。,关于for语句再做如下几点说明:求解完表达式1后,接着不是去执行语句,而是去求解表达式2。,表达式1可以省略,但是分号不能少。,表达式2也可以省略,这时系统认为表达式2始终为真,循环会无限进行下去。可以通过循环体中的break或goto语句结束循环。,表达式3也可以省略,但应使循环能正常结束。,三个表达式全省略时,for语句成了for(;)语句,表达式1、表达式3有时也会用到逗号表达式,例如,for(i=1,s=0;i=10;i+)s=s+i;,例二、用for语句实现输出120之间的奇数。(excch6forodd.c),几种循环的比较,1对某个循环结构来说,可以用前面介绍的4种方式中的任何一种进行描述,但结构化程序设计不赞成采用goto语句方案。,2从变量初始化的时机看,for语句通常用表达式1完成一些初始化工作;While语句、dowhile语句只能在它们之前初始化。,3for语句通常用表达式3使循环趋于结束,而while语句、dowhile语句通常在循环体中完成该工作。,for(k=0;k10;k+),k=0;while(k10)k+;,变量初始化,变量初始化,使循环趋于结束,使循环趋于结束,循环的嵌套,在for语句、while语句、dowhile语句的循环体中,还可以包含循环语句,这就构成了循环的嵌套,参见P121所示各种情况。,例三、输出如下图案:*,例二、输出如下图案:(ch6tristars.c)*,例一、输出如下图案:(ch6recstars.c)*,break语句,break语句对我们并不陌生,前面我们用break语句来结束switch语句。类似地,它可以用来结束循环语句。,while(表达式1)if(表达式2)break;,例一、用break语句结束循环(excch6break.c),注意:break语句仅能用于循环语句和switch语句中。,以while语句为例,其用法如下:,在多重循环中,break只结束本重循环。,for()while(表达式1)if(表达式2)break;,continue语句,一般地说,一个循环语句的循环体会被反复执行多次,要进行多次循环,例如,累加求和的例子就循环了10次。,while(表达式1)if(表达式2)continue;,注意:continue语句仅提前结束当次循环,而不是结束整个循环过程。,例一、P124例6.5(excch6ex6-5.c)。,在进行某次循环时,可以用continue语句提前结束当次循环。continue语句的一般形式为:continue;,下面介绍其用法:,for(表达式1;表达式2;表达式3)if(表达式4)continue;,doif(表达式2)continue;while(表达式1);,循环结构程序举例,前面学习了循环语句,下面对循环控制作进一步的总结。一、根椐事先是否知道循环次数,循环可分为两大类。,for(i=1;i=M;i+),/*必要的初始化*/dowhile(循环条件);,1事先知道循环次数M。,例一、求全班同学的高数平均成绩(ch6aver.c)。,2事先不知道循环次数,但知道循环的结束条件。,/*必要的初始化*/while(循环条件),或者,例二、反复从键盘输入正整数,求其中的最大值。一旦输入0或负数,循环就结束。(ch6max.c),可以用for语句构成循环,用循环变量来控制循环的次数。,循环结构程序举例,二、累加、累乘的处理方法,在用循环计算累加和、累积的时候,一般是按如下模式来处理的:,试计算:3+5+7+101,试计算:1*2*3*20,循环结构程序举例,例四、P126例6.8,从键盘输入自然数m,判断它是否为素数。(ch6ex6-8.c),例三、P124例6.6,计算的近似值(excch6ex6-6.c)。,例五、P127例6.9,求100200间的全部素数(ch6ex6-9.c)。,在本例中,每个累加项t=,其中,n=1、3、5、7、s=1、-1、1、-1、,因子:若a、b、c均为自然数,而且c=a*b,那么a、b称为c的因数/因子。素数:一个2的自然数m称为素数,当且仅当m只有1和m两个因子。结论:若m不能被2之间的自然数整除,则m必是素数。,循环结构程序举例,例五、输出乘法口诀表(ch6m4mula.c)。,1*1=11*2=22*2=41*3=32*3=63*3=91*9=92*9=183*9=274*9=369*9=81,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!