C语言程序设计教程(第2版)课件第6章.ppt
《C语言程序设计教程(第2版)课件第6章.ppt》由会员分享,可在线阅读,更多相关《C语言程序设计教程(第2版)课件第6章.ppt(44页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、第第6章章 循环结构程序设计循环结构程序设计 本章要点本章要点whilewhile语句语句do-whiledo-while语句语句forfor语句语句breakbreak语句和语句和continuecontinue语句在循环体中的作用语句在循环体中的作用循环结构的嵌套循环结构的嵌套本章难点本章难点循环结构的嵌套循环结构的嵌套能够熟练地使用循环语句进行程序设计能够熟练地使用循环语句进行程序设计 main()int i=1;long int sum=1;while(i=10)sum=sum*i;i+;printf(“10!=%ldn”,sum);sum=1*2*3*4*5*6*7*8*9*10;s
2、um请看下面的程序:循环结构的特点是:循环结构的特点是:程程序序的的流流程程是是在在给给定定条条件件时时,反反复复执执行行某某个个程程序段。序段。语言中可以用以下语句来实现循环:语言中可以用以下语句来实现循环:用用goto语句和语句和 if 语句构成循环;语句构成循环;用用while语句;语句;用用do-while语句语句;用用for语句。语句。6.1 while6.1 while语句语句 一般形式:一般形式:while(表达式表达式)语句语句 执行过程:执行过程:先计算表达式的值先计算表达式的值;若表达式的值为真若表达式的值为真(非非0)时执行循环体中的语句,时执行循环体中的语句,然后重复上
3、面步骤。若然后重复上面步骤。若 表达式的值为假表达式的值为假(0),则,则 结束循环。结束循环。6.1.1 while结构的形式结构的形式 例:计算例:计算10!并输出结果的程序用!并输出结果的程序用 while语句写出:语句写出:main()int i=1;long int sum=1;while(i=10)sum=sum*i;i+;printf(“10!=%ldn”,sum);main()int i=1;long int sum=1;loop:if(i=10)sum=sum*i;i+;goto loop;printf(“10!=%ldn”,sum);循环结构的术语循环结构的术语 1.循环条
4、件循环条件:是循环结构中的测试表达式。是循环结构中的测试表达式。如:while(i=10)2.循环体循环体:是在每个循环周期均要执行一次的语是在每个循环周期均要执行一次的语 句。语句可以是任何语句,简单语句、句。语句可以是任何语句,简单语句、复合语句、空语句均可以。复合语句、空语句均可以。如:上例while语句中用花括号括起来的复合语句。3.循环控制变量循环控制变量:是在循环条件中控制条件是真是在循环条件中控制条件是真 是假的变量。是假的变量。如:上例while语句中使用的变量 i。循环条件中的表达式一般是循环条件中的表达式一般是逻辑表达式逻辑表达式和和关系表达式关系表达式,也可以是,也可以是
5、算数表达式算数表达式(非(非0为为真,真,0为假)。一般表达式中应含有循环控制为假)。一般表达式中应含有循环控制变量。变量。while(3)和和while(0)虽然从程序设计的虽然从程序设计的角度上说是不合理的,但是合法的。角度上说是不合理的,但是合法的。while(3)语句 表示无限循环while(0)语句 表示不进入循环体 要要写写出出一一个个正正确确的的循循环环结结构构,对对控控制制变变量量要要做做三三方方面面工工作作:控控制制变变量量赋赋初初值值;把把控控制制变变量量写写入入正正确确的的循循环环条条件件;控控制制变变量的更新、调整。量的更新、调整。6.1.2 while循环的含义循环的
6、含义(3)循循环环体体包包括括一一个个以以上上语语句句,则则必必须须用用。long int sum=1;while(i=10)sum=sum*i;i+;(4)应该注意条件的选择以避免死循环。应该注意条件的选择以避免死循环。int a=5,n=0;while(a=5)printf(“%d”,n+);(5)允允许许while语语句句的的循循环环体体也也是是while语语句句,从从而而形形 成双重循环成双重循环。6.2 do-while6.2 do-while语句语句 一般形式:一般形式:do 语句语句 while(表达式);表达式);分号不能少 执行过程:执行过程:执行循环体中的语句;执行循环体中
7、的语句;计算表达式,测试循环计算表达式,测试循环 条件,为真条件,为真(非非0)则重复则重复 上面步骤,为假上面步骤,为假(0)结束结束循循 环。环。6.2.1 6.2.1 结构形式结构形式 例:将上面计算例:将上面计算10!并输出结果的程序用!并输出结果的程序用 do-while语句写出:语句写出:main()int i=1;long int sum=1;while(i=10)sum=sum*i;i+;printf(“10!=%ldn”,sum);main()int i=1;long int sum=1;do sum=sum*i;i+;while(i=10);printf(“10!=%ldn
8、”,sum);我们将我们将while和和do-while循环做一下比较循环做一下比较:main()int i;long sum=1;scanf(“%d”,&i);while(i=10)sum=sum*i;i+;printf(“%ldn”,sum);main()int i;long sum=1;scanf(“%d”,&i);do sum=sum*i;i+;while(i=10);printf(“%ldn”,sum);输入:9输出:90输入:11输出:1输入:9输出:90输入:11输出:11 比较上面两个程序,虽然结构是相同的,在比较上面两个程序,虽然结构是相同的,在输入值为有效值时结果相同,但当
9、输入无效值时输入值为有效值时结果相同,但当输入无效值时输出结果是不同的。为什么?输出结果是不同的。为什么?而do-while语句不管开始的时候测试循环条件是真是假,循环体都要执行一次,因为循环体是先于测试条件执行的。while语句进入循环体之前,测试循环条件,表达式必须为真,否则while循环不进入循环体,即循环体可能一次也不执行。while与与do-while的主要区别:的主要区别:6.2.2 do-while6.2.2 do-while循环的含义循环的含义 do while型循环是先执行后判断的循环,在任何型循环是先执行后判断的循环,在任何情况至少执行循环体一次情况至少执行循环体一次 do
10、 while型循环应注意以下几点型循环应注意以下几点:(1)在在if 语句,语句,while语句中,表达式都不能加分号,语句中,表达式都不能加分号,而在而在do while语句的表达式后面则必须加分号。语句的表达式后面则必须加分号。(2)do while语句可以组成多重循环,而且也可以和语句可以组成多重循环,而且也可以和while语句相互嵌套。语句相互嵌套。(3)在在do和和while之间的循环体由多个语句组成时,也之间的循环体由多个语句组成时,也必须加必须加 括起来组成一个复合语句。括起来组成一个复合语句。(4)do while和和while语句相互替换时,要注意修改循语句相互替换时,要注意
11、修改循环控制条件环控制条件 6.3 6.3 forfor型循型循环环 一般形式:一般形式:for(表达式表达式1;表达式;表达式2;表达式;表达式3)语句语句表达式表达式1:一组初始化表达式。:一组初始化表达式。表达式表达式2:循环控制条件。:循环控制条件。表达式表达式3:在执行完循环体语句之后执行的表达式。:在执行完循环体语句之后执行的表达式。我我们们前前面面已已经经说说明明,要要正正确确表表达达循循环环结结构构应应注注意意三三方方面面的的问问题题:控控制制变变量量的的初初始始化化,循循环环的的条件条件和和控制变量的更新控制变量的更新。for语句在书写形式上正好体现了这种紧密语句在书写形式上
12、正好体现了这种紧密的逻辑关系。的逻辑关系。不能省略不能省略不能省略不能省略6.3.1 for循环表现形式循环表现形式执行过程:执行过程:求出表达式求出表达式1的值,的值,(若表达式(若表达式1是逗号表达是逗号表达式,则依次计算);式,则依次计算);对对“表达式表达式2”进行判断,进行判断,为假退出循环,否则转为假退出循环,否则转;执行循环体中语句;执行循环体中语句;执行执行“表达式表达式3”,(若,(若表达式表达式3是逗号表达式,是逗号表达式,则依次计算)。则依次计算)。转向转向。例:将上面计算例:将上面计算10!的程序用!的程序用 for语句写出:语句写出:main()int i;long
13、sum;for(i=1,sum=1;i=10;i+)sum=sum*i;printf(“10!=%ldn”,sum);main()int i;long sum;for(i=1,sum=1;i=10;sum=sum*i,i+);printf(“10!=%ldn”,sum);空语句说明说明:表达式1:用于进入循环体之前给某些变量赋初值。若省略,可在for语句前给变量赋初值。main()int i=1;long sum=1;for(;i=10;i+)sum=sum*i;printf(“10!=%ldn”,sum);for 循环的三个表达式起着不同的作用,循环的三个表达式起着不同的作用,根据需要可以省
14、略。根据需要可以省略。表达式2:决定循环的条件,若省略,则为无限 循环。如:for(i0;i+)语句 for(;)语句无限循环(死循环)表达式3:用于循环一次后对某些变量进行修改。若省略,可在循环体内对变量进行修改。main()int i;long sum=1;for(i=1;i=10;)sum=sum*i;i+;printf(“10!=%ldn”,sum);for 语句最为灵活,它完全可以代替的语句最为灵活,它完全可以代替的while语句。语句。如:i=1;while(i=10)sum=sum*i;i+;等效于for(i=1;i=10;i+)sum=sum*i;for语句功能很强,其中表达式
15、语句功能很强,其中表达式1和表达式和表达式3可以是可以是逗号表达式,但为增强程序的可读性,一般不要把逗号表达式,但为增强程序的可读性,一般不要把与循环无关的东西放到与循环无关的东西放到for语句中。语句中。如:sum=1;for(i=1;i=10;i+)sum=sum*i;for(循环变量赋初值;循环条件;循环变量增值)语句for语句最简单、常用的形式如下:语句最简单、常用的形式如下:例例 从键盘上输入若干学生的成绩,当输入负数从键盘上输入若干学生的成绩,当输入负数时结束输入,统计并输出最高成绩和最低成绩。时结束输入,统计并输出最高成绩和最低成绩。空语句#includemain()float
16、x,xmax,xmin;scanf(“%f”,&x);xmax=x;xmin=x;for(;x=0;)if(xxmax)xmax=x;if(xxmin)xmin=x;scanf(“%f”,&x);printf(“nxmax=%fnxmin=%fn”,xmax,xmin);6.3.2 6.3.2 三种循环语句的总结三种循环语句的总结 三种循环语句共同的特点是三种循环语句共同的特点是:当循环控制条件非:当循环控制条件非零时,执行循环体语句,否则终止循环。零时,执行循环体语句,否则终止循环。语句可以是任何语句,简单语句、复合语句、空语句可以是任何语句,简单语句、复合语句、空语句均可以。语句均可以。w
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 教程 课件
限制150内