C语言课件第六章课件_第1页
C语言课件第六章课件_第2页
C语言课件第六章课件_第3页
C语言课件第六章课件_第4页
C语言课件第六章课件_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

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

文档简介

CC语言程序设计许多问题的求解归结为重复执行的操作,例如输入多个同学的成绩、对象遍历、迭代求根等问题。这种重复执行的操作在程序设计语言中用循环控制来实现。几乎所有实用程序都包含循环。特别是在现代多媒体处理程序(图像、声音、通讯)中,循环更是必不可少。

问题1:问题2:求学生平均成绩

分数相加后除以课数C语言程序设计循环结构的特点是什么?循环:有规律的重复循环体:被重复执行的部分循环条件:循环的执行满足一定的条件相同操作,反复执行C语言程序设计

循环的结构

-----while语句

-----do…while语句

-----for语句

-----用goto语句和if语句构成循环C语言程序设计while语句的一般格式C语言程序设计判断循环条件,为真时执行while语句中的循环体,然后继续判断循环条件,如此循环;为假时退出循环(即当循环条件成立时,反复执行循环体)。特点是:先判断,后执行

C语言程序设计一般形式:

while(表达式)语句当表达式为非0值时,执行while语句中的内嵌语句。其特点是:先判断表达式,后执行语句。C语言程序设计注意:循环体如果包含一个以上的语句,应该用花括弧括起来,以复合语句形式出现。在循环体中应有使循环趋向于结束的语句。如果无此语句,则i的值始终不改变,循环永不结束。C语言程序设计

do-while语句的特点:先执行循环体,然后判断循环条件是否成立。一般形式:

do

循环体语句

while(表达式);执行过程:先执行一次指定的循环体语句,然后判别表达式,当表达式的值为非零(“真”)时,返回重新执行循环体语句,如此反复,直到表达式的值等于0为止,此时循环结束。C语言程序设计例6.3求1到100的和

#include<stdio.h>

voidmain()

{inti,sum=0;

i=1;

do

{sum=sum+i;

i++;

}

while(i<=100);

printf("%d\n″,sum);

}运行结果:5050C语言程序设计while语句和用do-while语句的比较:在一般情况下,用while语句和用do-while语句处理同一问题时,若二者的循环体部分是一样的,它们的结果也一样。但是如果while面的表达式一开始就为假(0值)时,两种循环的结后果是不同的。C语言程序设计用for语句实现循环C语言中的for语句使用最为灵活,不仅可以用于循环次数已经确定的情况,而且可以用于循环次数不确定而只给出循环结束条件的情况,它完全可以代替while语句。一般形式:

for(表达式1;表达式2;表达式3)

{语句

}C语言程序设计for语句的执行过程:

(1)先求解表达式1。

(2)求解表达式2,若其值为真(值为非0),则执行for语句中指定的内嵌语句,然后执行下面第(3)步。若为假(值为0),则结束循环,转到第(5)步。

(3)求解表达式3。

(4)转回上面第(2)步骤继续执行。

(5)循环结束,执行for语句下面的一个语句

C语言程序设计表达式2?执行语句成立不成立执行for循环之后的语句执行表达式3执行表达式1循环初始条件循环控制条件循环体for语句等价于下列语句:表达式1;while(表达式2){语句;表达式3;}

C语言程序设计说明:(1)for语句的一般形式中的“表达式1”可以省略,此时应在for语句之前给循环变量赋初值。注意省略表达式1时,其后的分号不能省略。如

for(;i<=100;i++)sum=sum+i;

执行时,跳过“求解表达式1”这一步,其他不变。C语言程序设计说明:(2)如果表达式2省略,即不判断循环条件,循环无终止地进行下去。也就是认为表达式2始终为真。例如:for(i=1;;i++)sum=sum+i;

表达式1是一个赋值表达式,表达式2空缺。它相当于:

i=1;while(1){sum=sum+1;i++;}C语言程序设计说明:(4)可以省略表达式1和表达式3,只有表达式2,即只给循环条件。如:

for(;i<=100;)while(i<=100){{sum=sum+i;相当于sum=sum+i;i++;i++;}

}

在这种情况下,完全等同于while语句。可见for语句比while语句功能强,除了可以给出循环条件外,还可以赋初值,使循环变量自动增值等。C语言程序设计说明:(5)3个表达式都可省略,如:

for(;;)语句相当于

while(1)语句即不设初值,不判断条件(认为表达式2为真值),循环变量不增值。无终止地执行循环体。C语言程序设计说明:

表达式1和表达式3可以是一个简单的表达式,也可以是逗号表达式,即包含一个以上的简单表达式,中间用逗号间隔。如:

for(sum=0,i=1;i<=100;i++)sum=sum+i;或

for(i=0,j=100;i<=j;i++,j--)k=i+j;表达式1和表达式3都是逗号表达式,各包含两个赋值表达式,即同时设两个初值,使两个变量增值.C语言程序设计说明:

在逗号表达式内按自左至右顺序求解,整个逗号表达式的值为其中最右边的表达式的值。如:

for(i=1;i<=100;i++,i++)sum=sum+i;相当于

for(i=1;i<=100;i=i+2)sum=sum+i;C语言程序设计说明:(7)表达式一般是关系表达式(如i<=100)或逻辑表达式(如a<b&&x<y),但也可以是数值表达式或字符表达式,只要其值为非零,就执行循环体。C语言程序设计说明:②for(;(c=getchar())!=′\n′;)printf(″%c″,c);for语句中只有表达式2,而无表达式1和表达式3。其作用是每读入一个字符后立即输出该字符,直到输入一个“换行”为止。请注意,从终端键盘向计算机输入时,是在按Enter键以后才将一批数据一起送到内存缓冲区中去的。运行情况:Computer↙(输入)Computer(输出)而不是CcoommppuutteerrC语言程序设计注意:C语言中的for语句比其他语言(如BASIC,PASCAL)中的FOR语句功能强得多。可以把循环体和一些与循环控制无关的操作也作为表达式1或表达式3出现,这样程序可以短小简洁。但过分地利用这一特点会使for语句显得杂乱,可读性降低,最好不要把与循环控制无关的内容放到for语句中。C语言程序设计goto语句以及用goto语句构成循环goto语句——无条件转向语句

goto语句标号;语句标号用标识符表示,它的定名规则与变量名相同,即由字母、数字和下划线组成,其第一个字符必须为字母或下划线。

例如:gotolabel_1;合法;goto123;不合法C语言程序设计结构化程序设计方法主张限制使用goto语句,因为滥用goto语句将使程序流程无规律、可读性差。一般来说,可以有两种用途:(1)与if语句一起构成循环结构;(2)从循环体中跳转到循环体外。

但是这种用法不符合结构化原则,一般不宜采用,只有在不得已时(例如能大大提高效率)才使用。C语言程序设计例6.1用if语句和goto语句构成循环,求1到100的和

voidmain()

{inti,sum=0;

i=1;

loop:if(i<=100)

{sum=sum+i;

i++;

gotoloop;

}

printf("%d\\n″,sum);

}说明:这里用的是“当型”循环结构,当满足“i<=100”

时执行花括弧内的循环体。运行结果:5050C语言程序设计循环的嵌套一个循环体内又包含另一个完整的循环结构称为循环的嵌套。内嵌的循环中还可以嵌套循环,这就是多层循环。三种循环(while循环、do-while循环和for循环)可以互相嵌套。C语言程序设计下面几种都是合法的形式:(1)

while()(2)do(3)for(;;){…{…{while()dofor(;;){…}{…}{…}}while();}}while();C语言程序设计(4)

while()(5)for(;;)(6)do{…{…{…dowhile()for(;;){…}{}{…}while()}}}while()C语言程序设计break语句和continue语句break语句

break语句可以用来从循环体内跳出循环体,即提前结束循环,接着执行循环下面的语句一般形式:

break;注意:break语句不能用于循环语句和switch语句之外的任何其他语句中。C语言程序设计例:floatpi=3.14159;for(r=1;r<=10;r++){area=pi*r*r;if(area>100)break;printf(″r=%f,area=%f\n″,r,area);}

程序的作用是计算r=1到r=10时的圆面积,直到面积area大于100为止。从上面的for循环可以看到:当area>100时,执行break语句,提前结束循环,即不再继续执行其余的几次循环。C语言程序设计continue语句

作用为结束本次循环,即跳过循环体中下面尚未执行的语句,接着进行下一次是否执行循环的判定.一般形式:

continue;C语言程序设计continue语句和break语句的区别

continue语句只结束本次循环,而不是终止整个循环的执行。

while(表达式1){…

if(表达式2)continue;

…}C语言程序设计

continue和break的区别

break语句则是结束整个循环过程,不再判断执行循环的条件是否成立。

while(表达式1)

{…if(表达式2)break;…}C语言程序设计例6.5把100~200之间的不能被3整除的数输出。

#include<stdio.h>

voidmain()

{

intn;

for(n=100;n<=200;n++)

{

if(n%3==0)

continue;

printf("%d″,n);

}

}说明:当n能被3整除时,执行continue语句,结束本次循环(

温馨提示

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

评论

0/150

提交评论