C语言程序设计:第5章 循环结构的C程序设计

上传人:枫** 文档编号:568829833 上传时间:2024-07-27 格式:PPT 页数:22 大小:220.50KB
返回 下载 相关 举报
C语言程序设计:第5章 循环结构的C程序设计_第1页
第1页 / 共22页
C语言程序设计:第5章 循环结构的C程序设计_第2页
第2页 / 共22页
C语言程序设计:第5章 循环结构的C程序设计_第3页
第3页 / 共22页
C语言程序设计:第5章 循环结构的C程序设计_第4页
第4页 / 共22页
C语言程序设计:第5章 循环结构的C程序设计_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《C语言程序设计:第5章 循环结构的C程序设计》由会员分享,可在线阅读,更多相关《C语言程序设计:第5章 循环结构的C程序设计(22页珍藏版)》请在金锄头文库上搜索。

1、第第5 5章章 循环结构的循环结构的C程序设计程序设计 西安电子科技大学西安电子科技大学C C 语言程序设计语言程序设计循环结构的循环结构的C程序设计程序设计l l内容提要:内容提要: 构成循环的语句构成循环的语句构成循环的语句构成循环的语句 if ifgotogoto语句语句语句语句 whilewhile语句语句语句语句 dodowhilewhile语句语句语句语句 forfor语句语句语句语句 循环的嵌套循环的嵌套循环的嵌套循环的嵌套 breakbreak语句和语句和语句和语句和continuecontinue语句语句语句语句25.1 构成循环的语句构成循环的语句l l实现循环的语句(四种

2、):实现循环的语句(四种):1. 1. 用用用用gotogoto语句和语句和语句和语句和if if语句构成循环;语句构成循环;语句构成循环;语句构成循环; 不提倡不提倡不提倡不提倡2. 2. 用用用用whilewhile循环语句;循环语句;循环语句;循环语句; 当型循环当型循环当型循环当型循环- -先判断后执行先判断后执行先判断后执行先判断后执行3. 3. 用用用用dodowhilewhile循循循循环环环环语语语语句句句句; 直直直直到到到到型型型型循循循循环环环环- -先先先先执执执执行行行行后后后后判判判判断断断断4. 4. 用用用用forfor循环语句;循环语句;循环语句;循环语句;

3、多功能多功能多功能多功能35.1.1 goto语句及用语句及用goto语句构成循环语句构成循环l l语句一般格式语句一般格式 gotogoto 语句标号;语句标号;语句标号;语句标号; 语句标号:用于定义程序中的某个位置,用标识语句标号:用于定义程序中的某个位置,用标识语句标号:用于定义程序中的某个位置,用标识语句标号:用于定义程序中的某个位置,用标识符表示,不能只用数字。符表示,不能只用数字。符表示,不能只用数字。符表示,不能只用数字。 如:如:如:如:gotogoto start start;(;(;(;( ) gotogoto 20 20;(;(;(;( )l lgoto语句的功能语句的

4、功能 无条件地将程序流程转到标号指定的语句处无条件地将程序流程转到标号指定的语句处无条件地将程序流程转到标号指定的语句处无条件地将程序流程转到标号指定的语句处注意:注意:gotogoto语句能实现程序无条件转移,为编程提供语句能实现程序无条件转移,为编程提供语句能实现程序无条件转移,为编程提供语句能实现程序无条件转移,为编程提供了便利。但是无限制地使用,会破坏程序的结了便利。但是无限制地使用,会破坏程序的结了便利。但是无限制地使用,会破坏程序的结了便利。但是无限制地使用,会破坏程序的结构化程度。构化程度。构化程度。构化程度。因此应限制使用。因此应限制使用。因此应限制使用。因此应限制使用。45.

5、1.1 goto语句及用语句及用goto语句构成循环语句构成循环l l用用用用if ifgotogoto语句构成循环语句构成循环语句构成循环语句构成循环5-1 5-1 编写程序,求编写程序,求编写程序,求编写程序,求100100个自然数的和。个自然数的和。个自然数的和。个自然数的和。 即:即:即:即: s=1+2+3+ +100s=1+2+3+ +100includevoid main( ) int i=1,sum=0; loop: if(i=100i=100) sum=sum+i; i+; goto loop; printf(sum=%dn,sum);程序输出结果:程序输出结果:sum=50

6、50sum=505055.1.2 while循环语句循环语句 l l用用whilewhile语句实现当型循环语句实现当型循环l lwhilewhile语句一般格式语句一般格式 while (表达式表达式) 语句语句 l l一般为一般为一般为一般为关系关系关系关系表达式表达式表达式表达式或或或或逻辑逻辑逻辑逻辑表达式,也表达式,也表达式,也表达式,也可以是可以是可以是可以是C C语言其他类语言其他类语言其他类语言其他类型的合法表达式型的合法表达式型的合法表达式型的合法表达式 l l用来控制循环体是用来控制循环体是用来控制循环体是用来控制循环体是否执行否执行否执行否执行l l称为称为称为称为内嵌语

7、句内嵌语句内嵌语句内嵌语句,可,可,可,可以是基本语句、控以是基本语句、控以是基本语句、控以是基本语句、控制语句,也可以是制语句,也可以是制语句,也可以是制语句,也可以是复合语句复合语句复合语句复合语句l l是循环重复执行的是循环重复执行的是循环重复执行的是循环重复执行的部分部分部分部分 65.1.2 while循环语句循环语句l l执行过程执行过程 求解表达式的值求解表达式的值求解表达式的值求解表达式的值,为非,为非,为非,为非0 0(逻辑真)时,执行其(逻辑真)时,执行其(逻辑真)时,执行其(逻辑真)时,执行其中的中的中的中的内嵌语句(循环体)内嵌语句(循环体)内嵌语句(循环体)内嵌语句(

8、循环体),然后回过头来再判断,然后回过头来再判断,然后回过头来再判断,然后回过头来再判断表达式的值,如此重复,直到表达式的值为表达式的值,如此重复,直到表达式的值为表达式的值,如此重复,直到表达式的值为表达式的值,如此重复,直到表达式的值为0 0 时时时时结束循环,转去执行结束循环,转去执行结束循环,转去执行结束循环,转去执行whilewhile后面的语句。后面的语句。后面的语句。后面的语句。 N NY Y表表达达式式非非0?语句语句7程序举例程序举例5-2 5-2 利用利用利用利用whliewhlie语句重做例语句重做例语句重做例语句重做例5-15-1。 i=1,sum=0 当当i = 10

9、0 sum=sum+i i+输出输出sumi i: : 循环控制变量循环控制变量循环控制变量循环控制变量sumsum: : 累加器累加器累加器累加器includevoid main( ) int i,sum; i=1; sum=0; while (i=100i=100) sum=sum+i; i+; printf(sum=%dn,sum);程序输出结果:程序输出结果:sum=5050sum=505085.1.2 while循环语句循环语句注意:注意:l l如果循环体包含一条以上的语句,应以复合语句如果循环体包含一条以上的语句,应以复合语句如果循环体包含一条以上的语句,应以复合语句如果循环体包含

10、一条以上的语句,应以复合语句的形式出现。的形式出现。的形式出现。的形式出现。l l循环前,必须给循环控制变量赋初值。循环前,必须给循环控制变量赋初值。循环前,必须给循环控制变量赋初值。循环前,必须给循环控制变量赋初值。l l如果如果如果如果whilewhile表达式的值为表达式的值为表达式的值为表达式的值为0 0,则循环体一次也不执,则循环体一次也不执,则循环体一次也不执,则循环体一次也不执行行行行 ( (例如当例如当例如当例如当i i的初值的初值的初值的初值=101=101) ) 。l l在循环体中必须有使循环趋向结束的语句,否则在循环体中必须有使循环趋向结束的语句,否则在循环体中必须有使循

11、环趋向结束的语句,否则在循环体中必须有使循环趋向结束的语句,否则循环将无限进行(循环将无限进行(循环将无限进行(循环将无限进行(死循环死循环死循环死循环)。)。)。)。l l在循环体中,语句的先后位置必须符合逻辑,否在循环体中,语句的先后位置必须符合逻辑,否在循环体中,语句的先后位置必须符合逻辑,否在循环体中,语句的先后位置必须符合逻辑,否则会影响运算结果。则会影响运算结果。则会影响运算结果。则会影响运算结果。 l l循环体可以为空。循环体可以为空。循环体可以为空。循环体可以为空。95.1.3 do-while循环语句循环语句l l用用用用do-whiledo-whiledo-whiledo-

12、while语句实现语句实现语句实现语句实现“直到型直到型直到型直到型”循环循环循环循环l ldo-whiledo-whiledo-whiledo-while语句一般形式语句一般形式语句一般形式语句一般形式 do do 语句语句语句语句 while while (表达式表达式表达式表达式);););); l l执行过程执行过程执行过程执行过程 先执行内嵌语句(循环体),然后先执行内嵌语句(循环体),然后先执行内嵌语句(循环体),然后先执行内嵌语句(循环体),然后 求解表达式的值,不为求解表达式的值,不为求解表达式的值,不为求解表达式的值,不为0 0 0 0(逻辑真)(逻辑真)(逻辑真)(逻辑真)

13、 时,再执行循环体并判断条件,如时,再执行循环体并判断条件,如时,再执行循环体并判断条件,如时,再执行循环体并判断条件,如 此重复,直到表达式的值为此重复,直到表达式的值为此重复,直到表达式的值为此重复,直到表达式的值为0 0 0 0时结束时结束时结束时结束 循环,转去执行循环,转去执行循环,转去执行循环,转去执行whilewhilewhilewhile后面的语句。后面的语句。后面的语句。后面的语句。l l注意点与注意点与注意点与注意点与whilewhilewhilewhile循环基本相同循环基本相同循环基本相同循环基本相同NY循环体循环体表达式非表达式非0?10程序举例程序举例5-35-3利

14、用利用利用利用do-whiledo-while语句重做例语句重做例语句重做例语句重做例5-15-1。includevoid main( ) int i,sum; i=1; sum=0; while (i=100)while (i=100) sum=sum+i; sum=sum+i; i+; i+; printf(sum=%dn,sum);includevoid main( ) int i,sum; i=1; sum=0; do do sum=sum+i; sum=sum+i; i+; i+; while (i=100); while (i=100); printf(sum=%dn,sum);先

15、判后做先做后判115.1.4 for循环语句循环语句 l l语句一般格式语句一般格式语句一般格式语句一般格式 for ( for (表达式表达式表达式表达式1;1;表达式表达式表达式表达式2;2;表达式表达式表达式表达式3)3) 语句语句语句语句 l l执行过程执行过程执行过程执行过程 求解表达式求解表达式求解表达式求解表达式1 1 1 1,再,再,再,再判断表达式判断表达式判断表达式判断表达式2 2 2 2,如果,如果,如果,如果 其值为非其值为非其值为非其值为非0 0 0 0(逻辑真),则执行内嵌语(逻辑真),则执行内嵌语(逻辑真),则执行内嵌语(逻辑真),则执行内嵌语 句句句句( ( (

16、 (循环体循环体循环体循环体) ) ) ),并,并,并,并求解表达式求解表达式求解表达式求解表达式3 3 3 3;然后再;然后再;然后再;然后再 去判断表达式去判断表达式去判断表达式去判断表达式2 2 2 2,如此重复,直到其值,如此重复,直到其值,如此重复,直到其值,如此重复,直到其值 为为为为0 0 0 0时结束循环,执行后续语句。时结束循环,执行后续语句。时结束循环,执行后续语句。时结束循环,执行后续语句。循环变量赋初值循环变量赋初值循环变量赋初值循环变量赋初值循环体循环体循环体循环体循环控制条件循环控制条件循环控制条件循环控制条件NY求解表达式求解表达式1求解表达式求解表达式3表达式表

17、达式2为真为真? 语句语句循环变量增值循环变量增值循环变量增值循环变量增值125.1.4 for循环语句循环语句说明:说明:l l所有用所有用所有用所有用 whilewhile 语句语句语句语句实现的循环都可以用实现的循环都可以用实现的循环都可以用实现的循环都可以用forfor 语句语句语句语句实现。实现。实现。实现。l lforfor语句中任何一个表达式都可以省略,但其中的语句中任何一个表达式都可以省略,但其中的语句中任何一个表达式都可以省略,但其中的语句中任何一个表达式都可以省略,但其中的分号一定要保留。分号一定要保留。分号一定要保留。分号一定要保留。l lforfor语句中的表达式语句中

18、的表达式语句中的表达式语句中的表达式1 1和表达式和表达式和表达式和表达式3 3可以是一个简单表可以是一个简单表可以是一个简单表可以是一个简单表达式,也可以由逗号运算符将多个表达式连接起达式,也可以由逗号运算符将多个表达式连接起达式,也可以由逗号运算符将多个表达式连接起达式,也可以由逗号运算符将多个表达式连接起来。来。来。来。l l表达式表达式表达式表达式2 2一般是关系表达式或逻辑表达式,但也可一般是关系表达式或逻辑表达式,但也可一般是关系表达式或逻辑表达式,但也可一般是关系表达式或逻辑表达式,但也可以是数值表达式或字符表达式,只要其值非零,以是数值表达式或字符表达式,只要其值非零,以是数值

19、表达式或字符表达式,只要其值非零,以是数值表达式或字符表达式,只要其值非零,就执行循环体。就执行循环体。就执行循环体。就执行循环体。13程序举例程序举例5-4 5-4 利用利用利用利用forfor语句重做例语句重做例语句重做例语句重做例5-15-1。includevoid main( ) int i,sum; i=1; sum=0; while (i=100)while (i=100) sum=sum+i; sum=sum+i; i+; i+; printf(sum=%dn,sum);includevoid main( ) int i,sum; for(i=1, sum=0; i=100; i

20、+) for(i=1, sum=0; i=100; i+) sum=sum+i; sum=sum+i; printf(sum=%dn,sum);计数型循环语句计数型循环语句145.2 循环的嵌套循环的嵌套l l当一个循环体内又包含了另一个当一个循环体内又包含了另一个当一个循环体内又包含了另一个当一个循环体内又包含了另一个完整完整完整完整的循环结构,的循环结构,的循环结构,的循环结构,就称为循环的嵌套。就称为循环的嵌套。就称为循环的嵌套。就称为循环的嵌套。l l内嵌的循环中又可以嵌套循环,从而构成多重循内嵌的循环中又可以嵌套循环,从而构成多重循内嵌的循环中又可以嵌套循环,从而构成多重循内嵌的循环

21、中又可以嵌套循环,从而构成多重循环。环。环。环。l l三种循环可以相互嵌套。三种循环可以相互嵌套。三种循环可以相互嵌套。三种循环可以相互嵌套。l l说明:说明:说明:说明:(1 1)必须是外层循环)必须是外层循环“包含包含”内层循环,不能交叉。内层循环,不能交叉。(2 2)嵌套的循环变量不能)嵌套的循环变量不能相同相同。(3 3)多重循环程序执行时,外层循环每执行一次,多重循环程序执行时,外层循环每执行一次,多重循环程序执行时,外层循环每执行一次,多重循环程序执行时,外层循环每执行一次, 内层循环都需要循环执行多次。内层循环都需要循环执行多次。内层循环都需要循环执行多次。内层循环都需要循环执行

22、多次。15程序举例程序举例5-5 5-5 输出九九表。输出九九表。输出九九表。输出九九表。includevoid main( ) int i,j; for(i=1;i10;i+) for(j=1;j10;j+) printf(“%4d”,i*j); printf(“n”); 运行结果为:运行结果为:165.3 break语句和语句和continue语句语句 一、一、一、一、breakbreak语句语句语句语句(1 1)用)用)用)用breakbreak语句可以语句可以语句可以语句可以结束结束结束结束switchswitch结构和三种循环。结构和三种循环。结构和三种循环。结构和三种循环。(2 2

23、)breakbreak语句只能终止它所在的循环,而不能终止多层循语句只能终止它所在的循环,而不能终止多层循语句只能终止它所在的循环,而不能终止多层循语句只能终止它所在的循环,而不能终止多层循环。环。环。环。二、二、二、二、continuecontinue语句语句语句语句(1 1)用)用)用)用continuecontinue语句可以语句可以语句可以语句可以结束本次循环结束本次循环结束本次循环结束本次循环,即跳过循环体中后,即跳过循环体中后,即跳过循环体中后,即跳过循环体中后面尚未执行的语句,立即进行下一轮的循环。面尚未执行的语句,立即进行下一轮的循环。面尚未执行的语句,立即进行下一轮的循环。面

24、尚未执行的语句,立即进行下一轮的循环。(2 2)对于)对于)对于)对于whilewhile和和和和do-whiledo-while而言,意味着立即执行条件测试部而言,意味着立即执行条件测试部而言,意味着立即执行条件测试部而言,意味着立即执行条件测试部分,而对于分,而对于分,而对于分,而对于forfor语句而言,则意味着立即求解表达式语句而言,则意味着立即求解表达式语句而言,则意味着立即求解表达式语句而言,则意味着立即求解表达式3 3。17程序举例程序举例5-6 5-6 把把把把100100200200之间不能被之间不能被之间不能被之间不能被3 3整除的数输出。整除的数输出。整除的数输出。整除的

25、数输出。本次循环结束本次循环结束循环体中的剩余语句被忽略循环体中的剩余语句被忽略执行表达式执行表达式3,进入下一循环,进入下一循环continue总是做总是做if的内嵌语句的内嵌语句if(n%3) printf(“%d”,n);此法更佳此法更佳185.4 循环结构程序设计举例循环结构程序设计举例 5-7 5-7 求求求求n n!# #includeinclude#include#include void main( )void main( ) long long intint i,n,nni,n,nn; ; printf(“inputprintf(“input n:n”); n:n”); sc

26、anf(“%d”,&nscanf(“%d”,&n); ); if(n=0) if(n=0) printf(“error!nprintf(“error!n”);”); else else for(i=1,nn=1;i=n;i+) for(i=1,nn=1;i=k+1 F输出输出YES“ 输出输出NO流程图如下:流程图如下:#include #include void main( ) int i,n,k; printf(Enter an integer number:n ); scanf(%d,&n); k=k=sqrt(double)nsqrt(double)n); ); for (i=2; i

27、=ki=k+1i=k+1) printf(YESn); else printf(NOn);程序如下程序如下:21上机作业上机作业1.1.编写一个程序求出编写一个程序求出200200300300之间的数,且满足之间的数,且满足条件:它们三个数的数字之积为条件:它们三个数的数字之积为4242,之和为,之和为1212。2.2.习题习题P103P103第第1111题。题。3.3.学习指导学习指导P30P30(4545)题)题4.4.4.4.从键盘上输入若干字符(以回车键结束),分从键盘上输入若干字符(以回车键结束),分从键盘上输入若干字符(以回车键结束),分从键盘上输入若干字符(以回车键结束),分别统计其中字母(区分大小写)、数字和其它字别统计其中字母(区分大小写)、数字和其它字别统计其中字母(区分大小写)、数字和其它字别统计其中字母(区分大小写)、数字和其它字符的个数。符的个数。符的个数。符的个数。22

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号