循环结构程序设计.ppt

上传人:王** 文档编号:180754 上传时间:2023-03-24 格式:PPT 页数:33 大小:606KB
下载 相关 举报
循环结构程序设计.ppt_第1页
第1页 / 共33页
循环结构程序设计.ppt_第2页
第2页 / 共33页
循环结构程序设计.ppt_第3页
第3页 / 共33页
循环结构程序设计.ppt_第4页
第4页 / 共33页
循环结构程序设计.ppt_第5页
第5页 / 共33页
循环结构程序设计.ppt_第6页
第6页 / 共33页
循环结构程序设计.ppt_第7页
第7页 / 共33页
循环结构程序设计.ppt_第8页
第8页 / 共33页
循环结构程序设计.ppt_第9页
第9页 / 共33页
循环结构程序设计.ppt_第10页
第10页 / 共33页
亲,该文档总共33页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《循环结构程序设计.ppt》由会员分享,可在线阅读,更多相关《循环结构程序设计.ppt(33页珍藏版)》请在优知文库上搜索。

1、1第六章第六章 循环结构程序设计循环结构程序设计6.1 概概 述述 循环结构循环结构是程序中一种很重要的结构。其特点是,是程序中一种很重要的结构。其特点是, 在给定在给定条件成立时,反复执行某程序段,直到条件不成立为止。条件成立时,反复执行某程序段,直到条件不成立为止。 给定给定的条件称为循环条件,反复执行的程序段的条件称为循环条件,反复执行的程序段称为循环体称为循环体。语言。语言提供了多种循环语句,可以组成各种不同形式的循环结构。提供了多种循环语句,可以组成各种不同形式的循环结构。 (1)用)用goto语句和语句和if语句构成循环语句构成循环 (2)用)用while语句语句 (3)用)用do

2、-while语句语句 (4) 用用for语句语句2表达式语句表达式语句a) 当型循环当型循环b) 直到循环直到循环非00非0036.2 goto语句及用语句及用goto语句构成的循环语句构成的循环 一、无条件转移语句一、无条件转移语句goto语句语句 一般格式:一般格式: goto 语句标号;语句标号; 其中语句标号是按标识符规定书写的符号,其中语句标号是按标识符规定书写的符号, 放在某一语句放在某一语句行的前面,标号后加冒号行的前面,标号后加冒号(:)。语句标号起标识语句的作用,。语句标号起标识语句的作用,与与goto 语句配合使用。语句配合使用。 如:如: label: i+; goto

3、label1; 语言不限制程序中使用标号的次数,但各标号不得重名。语言不限制程序中使用标号的次数,但各标号不得重名。 goto语句的语义是改变程序流向,语句的语义是改变程序流向, 转去执行语句标号所标识转去执行语句标号所标识的语句。的语句。4二、用二、用goto语句与语句与if语句实现循环语句实现循环用goto语句与if语句实现循环的形式:形式形式1:loop1: 语句;语句; if (表达式)(表达式) goto loop1;形式形式2:loop1: if (表达式)(表达式) goto loop2; 语句;语句; goto loop1;loop2 : 注意:注意:在结构化程序设计中一般不主

4、张使用在结构化程序设计中一般不主张使用goto语句,语句, 以以免造成程序流程的混乱,使理解和调试程序都产生困难。免造成程序流程的混乱,使理解和调试程序都产生困难。5例例1: 编程序求:编程序求:s=1+2+3+100main() int s=0,n=1; loop: s=s+n; n+; if (n100) goto loop2; s=s+n; n+; goto loop1; loop2: printf(S=%d,s); 6例例2:统计从键盘输入一行字符的个数。:统计从键盘输入一行字符的个数。 #includestdio.h void main() int n=0; printf(input

5、 a stringn); loop: if(getchar()!=n) n+; goto loop; printf(%d,n); 76.3 while 语句语句 执行过程是:计算表达式的值,当值为真执行过程是:计算表达式的值,当值为真(非非0)时,时, 执行循环体语句。如右上图。执行循环体语句。如右上图。 while语句的一般形式为:语句的一般形式为: while(表达式表达式) 语句;语句; 其中表达式是循环条件,语其中表达式是循环条件,语句为循环体,若是多个语句则必句为循环体,若是多个语句则必须用须用和和组成复合语句。组成复合语句。表达式语句非008例例1: 编程序求:编程序求:s=1+2

6、+3+100main() int s=0,n=1; while (n=100) s=s+n; n+; printf(S=%d,s); 96.4 Dowhile语句 do-while语句的一般形式为:语句的一般形式为: do 语句;语句; while (表达式表达式); 其中:语句是循环体, 表达式是循环条件。 表达式语句非00 执行过程:执行过程:先执行循环体语句一次, 再判别表达式的值,若为真(非0)则继续循环,否则终止循环。10例例1: 编程序求:编程序求:s=1+2+3+100main() int s=0,n=1; do s=s+n; n+; while (n=100); printf(

7、S=%d,s); 11使用使用while和和do-while语句应注意以下几点:语句应注意以下几点: 1.在在if语句,语句,while语句中,语句中, 表达式后面都不能加分表达式后面都不能加分号,号, 而在而在 do-while语句的表达式后面则必须加分号。语句的表达式后面则必须加分号。 2.do-while语句也可以组成多重循环,而且也可以语句也可以组成多重循环,而且也可以和和while语句相互嵌套。语句相互嵌套。 3.当循环体由多个语句组成时,也必须用当循环体由多个语句组成时,也必须用括起来括起来组成一个复合语句。组成一个复合语句。 4.如果循环至少要执行一次,如果循环至少要执行一次,

8、while和和do-while语句语句可以相互替换。可以相互替换。126.5 for语句语句 for语句是语言所提供的功能更强,使用更广泛的一种语句是语言所提供的功能更强,使用更广泛的一种循环语句。循环语句。一、使用一般形式为:一、使用一般形式为: for(表达式表达式1;表达式;表达式2;表达;表达3) 语句;语句; 其中:表达式表达式1通常用来给循环变量赋初值,一般是赋值表达式。也允许在for语句外给循环变量赋初值,此时可以省略该表达式。 表达式表达式2通常是循环条件,一般为关系表达式或逻辑表达式。 表达式表达式3通常可用来修改循环变量的值,一般是赋值语句。13for语句的执行过程:语句的

9、执行过程: 1.首先计算表达式首先计算表达式1的值。的值。 2.再计算表达式再计算表达式2的值,若值为的值,若值为真真(非非0)则执行循环体一次,则执行循环体一次, 否则否则跳出循环。跳出循环。 3.然后再计算表达式然后再计算表达式3的值,的值,转回第转回第2步重复执行。步重复执行。 在整个在整个for循环过程中,表达循环过程中,表达式式1只计算一次,表达式只计算一次,表达式2和表达和表达式式3则可能计算多次。循环体可能则可能计算多次。循环体可能多次执行,也可能一次都不执行。多次执行,也可能一次都不执行。表达式2语句非00语句求解表达式1求解表达式3for 语句的执行过程语句的执行过程14例:

10、用例:用for语句计算语句计算s=1+2+3+.+99+100 main() int n,s=0; for(n=1;n=100;n+) s=s+n; printf(s=%dn,s); 本例本例for语句中的表达式语句中的表达式3为为n+,实际上也是一,实际上也是一种赋值语句,相当于种赋值语句,相当于n=n+1,以改变循环变量的值。,以改变循环变量的值。 15二、在使用二、在使用for语句中要注意以下几点:语句中要注意以下几点: 1.for语句中的各表达式都可省略,但分号间隔符不能少语句中的各表达式都可省略,但分号间隔符不能少 如:如:for(;表达式;表达式2;表达式;表达式3) 省去了表达式

11、省去了表达式1。 for(表达式表达式1;表达式;表达式3) 省去了表达式省去了表达式2。 for(表达式表达式1;表达式;表达式2;) 省去了表达式省去了表达式3。 for(;) 省去了全部表达式。省去了全部表达式。 2.在循环变量已赋初值时,可省去表达式在循环变量已赋初值时,可省去表达式1。如省去表达式。如省去表达式2或表达式或表达式3则将造成无限循环,这时应在循环体内设法结束循则将造成无限循环,这时应在循环体内设法结束循环。环。 例:例:16main() int n=1,s=0; for(;n=100;n+) s=s+n; printf(s=%dn,s); main() int n=1,

12、s=0; for(;n=10) break; printf(s=%dn,s); for( ; ; )等效于等效于while( 1) 18 3. for语句中的语句中的 三个表达式都可以是逗号表达式,三个表达式都可以是逗号表达式, 即每个表即每个表达式都可由多个表达式组成。达式都可由多个表达式组成。 例:例: main() int n,s; for(n=1,s=0;n=100;n+) s=s+n; printf(s=%dn,s); main() int n,s; for(n=1,s=0;n=100;n+,s+=n); printf(s=%dn,s); 这里为什么要加;19例:统计从键盘输入一行字

13、符的个数。例:统计从键盘输入一行字符的个数。 #includestdio.h void main() int n=0; printf(input a string:n); for(;getchar()!=n;n+); printf(%d,n); 说明:说明:本例中,省去了本例中,省去了for语句的表达式语句的表达式1,表达式,表达式3也不是用也不是用来修改循环变量,而是用作输入字符的计数。这样,来修改循环变量,而是用作输入字符的计数。这样, 就把本应在就把本应在循环体中完成的计数放在表达式中完成了。因此循环体是空语句。循环体中完成的计数放在表达式中完成了。因此循环体是空语句。应注意的是,应注意

14、的是,空语句后的分号不可少,空语句后的分号不可少,如缺少此分号,则把后面如缺少此分号,则把后面的的printf 语句当成循环体来执行。反过来说,语句当成循环体来执行。反过来说,如循环体不为空语句如循环体不为空语句时,时, 决不能在表达式的括号后加分号,决不能在表达式的括号后加分号, 这样又会认为循环体是空这样又会认为循环体是空语句而不能执行循环体。语句而不能执行循环体。 206.6 循环的嵌套循环的嵌套 for语句也可与语句也可与while,do-while语句相互嵌套,构成多重循环。语句相互嵌套,构成多重循环。以下形式都合法的嵌套。以下形式都合法的嵌套。(4) while() for() (

15、1) while( ) while( ) (2) do do while() while();(3) for() for() 21 while() do while(); (5) for( ) while( ) (6) dofor( ) while();(8) for() do while(); 22例:打印如下形式的九九乘法表例:打印如下形式的九九乘法表.#include main() int x,y; for(x=1;x=9;x+) for(y=1;y=9;y+) printf(%d*%d=%2d ,x,y,x*y); printf(n); 236.7 几种循环语句的比较几种循环语句的比较

16、 for ( ) while ( ) do . while(); 循环类型 当型循环 当型循环 直到循环 循环控制条件 表达式 2 值非 0 表达式值非 0 表达式值非 0 循环变量初值 在 for 语句行中 在 while 之前 在 do 之前 使循环结束 表达式 3 循环体中使用专门语句 循环体中使用专门语句 246.8 break语句和语句和continue语句语句一、一、break语句语句 break语句只能用在语句只能用在switch 语句或循环语句中,语句或循环语句中, 其其作用是跳出作用是跳出switch语句或跳出语句或跳出本层循环本层循环,转去执行后,转去执行后面的程序。由于面的程序。由于break语句的转移方向是明确的,所以语句的转移方向是明确的,所以不需要语句标号与之配合。不需要语句标号与之配合。 break语句的一般形式为:语句的一般形式为: break; 注意:注意:break语句用于循环体中,一般与语句用于循环体中,一般与if语句联合使用。语句联合使用。25 分析下面程序的功能分析下面程序的功能#includestdio.hvoid main() char a

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > C/C++资料

copyright@ 2008-2023 yzwku网站版权所有

经营许可证编号:宁ICP备2022001189号-2

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