第5章循环结构设计程序设计.ppt
《第5章循环结构设计程序设计.ppt》由会员分享,可在线阅读,更多相关《第5章循环结构设计程序设计.ppt(50页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1高级语言程序设计 南京邮电大学传媒技术学院第5章循环结构设计程序设计 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望2高级语言程序设计 南京邮电大学传媒技术学院学习目标学习目标学习目标学习目标n理解循环结构的概念。理解循环结构的概念。n掌握如何用掌握如何用while语句构成循环结构。语句构成循环结构。n掌握如何用掌握如何用do-while语句构成循环结构。语句构成循环结构。n熟练掌握如何用熟练掌握如何用for语句构成循环结构。语句构成循环结构。n掌握循环结构的嵌
2、套使用。掌握循环结构的嵌套使用。n理解理解break和和continue语句应用于循环体时的区别。语句应用于循环体时的区别。3高级语言程序设计 南京邮电大学传媒技术学院在在C C语言中可以用以下语句来实现循环:语言中可以用以下语句来实现循环:1)while语句。语句。2)do-while语句。语句。3)for语句。语句。4)goto语句和语句和if语句。语句。循环循环循环循环 是一种对同一程序段有规律的重复是一种对同一程序段有规律的重复是一种对同一程序段有规律的重复是一种对同一程序段有规律的重复被重复执行的部分叫被重复执行的部分叫被重复执行的部分叫被重复执行的部分叫循环体循环体循环体循环体。5
3、.1 5.1 引言引言4高级语言程序设计 南京邮电大学传媒技术学院n!=123n,用,用fac来存放结果:来存放结果:初始化初始化值为值为1fac12nfac1facfac2facfacnfac作n次乘法facifac累乘器计数器例如,求阶乘例如,求阶乘5高级语言程序设计 南京邮电大学传媒技术学院5.5.2 while2 while语句语句真真(非零非零)表达式表达式 循环体循环体假假(零零)while 语句的形式语句的形式:while(表达式)表达式)循环体;循环体;while while 语句常称为语句常称为“当型当型”循环语句。循环语句。6高级语言程序设计 南京邮电大学传媒技术学院【例例
4、例例5-15-1】用用用用whilewhile语句构成的循环语句构成的循环语句构成的循环语句构成的循环结构求结构求结构求结构求n!n!算法:算法:l lstep1step1:定义初始化变量。:定义初始化变量。:定义初始化变量。:定义初始化变量。本程序需要三个变量,一个用来接收本程序需要三个变量,一个用来接收本程序需要三个变量,一个用来接收本程序需要三个变量,一个用来接收n n,一个用来表,一个用来表,一个用来表,一个用来表示求阶乘过程中数据从示求阶乘过程中数据从示求阶乘过程中数据从示求阶乘过程中数据从1 1到到到到n n的变化,还有一个保存的变化,还有一个保存的变化,还有一个保存的变化,还有一
5、个保存计算结果计算结果计算结果计算结果l lstep2step2:输入:输入:输入:输入n n,需要考虑输入数据合法性的问题,需要考虑输入数据合法性的问题,需要考虑输入数据合法性的问题,需要考虑输入数据合法性的问题l lstep3step3:计算:计算:计算:计算n!n!就是一个循环累乘求积的过程就是一个循环累乘求积的过程就是一个循环累乘求积的过程就是一个循环累乘求积的过程 n n!=1*2*3=1*2*3*.(n-1n-1)*n*n7高级语言程序设计 南京邮电大学传媒技术学院【例例例例5-15-1】n!n!的的的的C C语言程序语言程序语言程序语言程序#include#include voi
6、d main()void main()int n,i=1;int n,i=1;long int fac;long int fac;printf(please input n(n=0):);printf(please input n(n=0):);scanf(%d,&n);scanf(%d,&n);if(n=0)fac=1;if(n=0)fac=1;else else printf(Invalid input!n);printf(Invalid input!n);return 0;return 0;while(i=n)while(i0)printf(+);else printf(-);scanf
7、(%f ,&x);判断正负号判断正负号继续输入下一个数继续输入下一个数10高级语言程序设计 南京邮电大学传媒技术学院#include stdio.h#include stdio.h void main()void main()char ch;int num=0;char ch;int num=0;ch=getchar();ch=getchar();例:统计从键盘输入的一行字符的个数(以回例:统计从键盘输入的一行字符的个数(以回车键作为输入结束标记车键作为输入结束标记)while(ch!=n)判断是否输入结束判断是否输入结束 num+;ch=getchar();printf(num=%dn,nu
8、m);11高级语言程序设计 南京邮电大学传媒技术学院注意:注意:表达式在判断前,必须要有明确的值。表达式在判断前,必须要有明确的值。循环体中一般有改变条件表达式的语句。循环体中一般有改变条件表达式的语句。while(while(表达式表达式)后面没有分号。后面没有分号。12高级语言程序设计 南京邮电大学传媒技术学院 5.5.3 do-while3 do-while语句语句 do-while的形式:的形式:do 循环体;循环体;while(表达式);表达式);do-while语句语句形式与与直到型形式与与直到型循环相似,但它仍然是当型循循环相似,但它仍然是当型循环。条件为真时执行循环环。条件为真
9、时执行循环真真(非零非零)表达式表达式 循环体循环体假假(零零)13高级语言程序设计 南京邮电大学传媒技术学院【例例例例5-25-2】用用用用do-whiledo-while语句构成的循环语句构成的循环语句构成的循环语句构成的循环结构求结构求结构求结构求n!n!do do fac*=i;fac*=i;i+;i+;while(i=n);while(i=n);说明说明:先先执行执行语句语句,后判断,后判断表达式表达式。第一次条件为真时,第一次条件为真时,while,do-whilewhile,do-while等价;等价;第一次条件为假时,二者不同。第一次条件为假时,二者不同。while(i=n)w
10、hile(i=n)fac*=i;fac*=i;i+;i+;14高级语言程序设计 南京邮电大学传媒技术学院注意:注意:在在ifif、whilewhile语句中,表达式后面都没有语句中,表达式后面都没有分号,而在分号,而在do-whiledo-while语句的表达式后面则语句的表达式后面则必须加分号。必须加分号。do-whiledo-while和和whilewhile语句相互替换时,要注语句相互替换时,要注意修改循环控制条件意修改循环控制条件 。15高级语言程序设计 南京邮电大学传媒技术学院5.4 for5.4 for语句语句forfor的形式:的形式:for(for(初始表达式初始表达式1 1;
11、条件表达式;条件表达式2 2;循环表达式;循环表达式3 3)循环体循环体;表达式表达式1 1:用于循环开始前为循环变量设置初始值。:用于循环开始前为循环变量设置初始值。表达式表达式2 2:控制循环执行的条件,决定循环次数。:控制循环执行的条件,决定循环次数。表达式表达式3 3:循环控制变量修改表达式。:循环控制变量修改表达式。循环体语句:循环体语句:被重复执行的语句。被重复执行的语句。16高级语言程序设计 南京邮电大学传媒技术学院表达式表达式3 3计算表达式计算表达式1 1循环体循环体判断表达式判断表达式2 2假假(零零)真真(非零非零)forfor的下一条语句的下一条语句执行流程执行流程:1
12、7高级语言程序设计 南京邮电大学传媒技术学院 for(fac=1,i=1;i=n;i+)for(fac=1,i=1;i=n;i+)for(fac=1,i=1;i=n;i+)for(fac=1,i=1;i=n;i+)fac*=i;fac*=i;fac*=i;fac*=i;例如:例如:它相当于以下语句:它相当于以下语句:fac=1;i=1;fac=1;i=1;while(i=n)while(i=n)fac*=i;fac*=i;i+;i+;表达式表达式1 1;whilewhile(表达式表达式2 2)表达式表达式3 3;18高级语言程序设计 南京邮电大学传媒技术学院说明说明:三个表达式都可以是逗号表
13、达式。三个表达式都可以是逗号表达式。三个表达式都是任选项,都可以省略,三个表达式都是任选项,都可以省略,但要注意省略表达式后,但要注意省略表达式后,分号间隔符分号间隔符不不能省略。能省略。19高级语言程序设计 南京邮电大学传媒技术学院 for语句中表达式省略的几种情况:语句中表达式省略的几种情况:(1 1)forfor语句一般形式中的语句一般形式中的“表达式表达式1”1”可以可以省略;省略;如:如:fac=1;i=1;for(;in)break;fac*=i;21高级语言程序设计 南京邮电大学传媒技术学院(3 3)表达式)表达式3 3也可以省略,同样此时循环体中也可以省略,同样此时循环体中要保
14、证循环能正常结束;要保证循环能正常结束;如:如:for(fac=1,i=1;i=n;)fac*=i;i+;22高级语言程序设计 南京邮电大学传媒技术学院 (4)4)4)4)可以省略表达式可以省略表达式可以省略表达式可以省略表达式1 1 1 1和表达式和表达式和表达式和表达式3 3 3 3,只有表达式,只有表达式,只有表达式,只有表达式2 2 2 2如:如:如:如:fac=1;i=1;for(;i=n;)fac*=i;fac*=i;i+;i=1;fac=1;while(in)break;fac*=i;i+;(5 5)三个表达式都可省略,同样此时)三个表达式都可省略,同样此时循环体中要保证循环能正
15、常结束;循环体中要保证循环能正常结束;fac=1;i=1;for(;)if(in)break;fac*=i;i+;相当于相当于条件始终为真地执行循环体。条件始终为真地执行循环体。如如:24高级语言程序设计 南京邮电大学传媒技术学院(6 6 6 6)循环体为空语句)循环体为空语句)循环体为空语句)循环体为空语句 对对对对forforforfor语句,循环体为空语句的一般形式为语句,循环体为空语句的一般形式为语句,循环体为空语句的一般形式为语句,循环体为空语句的一般形式为:for(for(for(for(表达式表达式表达式表达式1 1 1 1;表达式;表达式;表达式;表达式2 2 2 2;表达式;
16、表达式;表达式;表达式3)3)3)3);如:如:如:如:在在显显示示器器上上输输出出输输入入的的一一串串字字符符,输输入入的的字字符为符为*时时,结束循环。结束循环。输入输入abcd*abcd*输出输出abcd*abcd*while(while(putchar(getchar(putchar(getchar()!=*)!=*););for(fac=1,i=1for(fac=1,i=1;i=ni=n;fac*=i,i+)fac*=i,i+);25高级语言程序设计 南京邮电大学传媒技术学院 5.5 continue5.5 continue5.5 continue语句和语句和语句和语句和语句和语句和
17、breakbreakbreak语句在循环体中的语句在循环体中的语句在循环体中的语句在循环体中的语句在循环体中的语句在循环体中的应用应用应用应用应用应用5.5.1 continue5.5.1 continue语句在循环体中的应用语句在循环体中的应用语句在循环体中的应用语句在循环体中的应用l lcontinuecontinue语句的一般形式为:语句的一般形式为:语句的一般形式为:语句的一般形式为:continue;continue;l l其作用是结束本次循环,即跳过本次循环体中其作用是结束本次循环,即跳过本次循环体中其作用是结束本次循环,即跳过本次循环体中其作用是结束本次循环,即跳过本次循环体中c
18、ontinue continue 语句之后的语句,转入下一次循环条语句之后的语句,转入下一次循环条语句之后的语句,转入下一次循环条语句之后的语句,转入下一次循环条件的判断,决定循环是否继续执行。件的判断,决定循环是否继续执行。件的判断,决定循环是否继续执行。件的判断,决定循环是否继续执行。26高级语言程序设计 南京邮电大学传媒技术学院注意:注意:注意:注意:执行执行continue语句并没有使整个循环终止语句并没有使整个循环终止l l在在在在whilewhile和和和和do-whiledo-while循环中,循环中,循环中,循环中,continuecontinue语句使得流语句使得流语句使得流
19、语句使得流程直接跳到循环控制条件的测试部分程直接跳到循环控制条件的测试部分程直接跳到循环控制条件的测试部分程直接跳到循环控制条件的测试部分l l在在在在forfor循环中,遇到循环中,遇到循环中,遇到循环中,遇到continuecontinue后,跳过循环体中后,跳过循环体中后,跳过循环体中后,跳过循环体中余下的语句,而转去对余下的语句,而转去对余下的语句,而转去对余下的语句,而转去对forfor语句中的语句中的语句中的语句中的“表达式表达式表达式表达式3 3”求值,然后进行求值,然后进行求值,然后进行求值,然后进行“表达式表达式表达式表达式2”2”的条件测试,最后的条件测试,最后的条件测试,
20、最后的条件测试,最后根据根据根据根据“表达式表达式表达式表达式2”2”的值来决定的值来决定的值来决定的值来决定forfor循环是否执行。循环是否执行。循环是否执行。循环是否执行。27高级语言程序设计 南京邮电大学传媒技术学院 5.5.2 break5.5.2 break语句在循环体中的应语句在循环体中的应用用语句形式语句形式:break;break;用用break语句可以使程序执行流程跳出语句可以使程序执行流程跳出switch语句体,语句体,从从而构成多分支选择结构而构成多分支选择结构。breakbreak语句只能使用在循环体和语句只能使用在循环体和switchswitch语句内。语句内。作用
21、作用:break出现在循环体中时,用于结束当前循环,出现在循环体中时,用于结束当前循环,跳出跳出break所在的循环结构所在的循环结构。28高级语言程序设计 南京邮电大学传媒技术学院breakbreak语句和语句和语句和语句和continuecontinue语句的区别:语句的区别:语句的区别:语句的区别:lbreak语句是完全从循环中跳出语句是完全从循环中跳出lcontinue语句只结束本次循环。语句只结束本次循环。29高级语言程序设计 南京邮电大学传媒技术学院while(条件条件)语句语句A;break;语句语句 B;真真语句语句B条件条件语句语句Abreak假假结束循环结束循环 break
22、break语句与语句与continuecontinue语句的区别语句的区别至此位置至此位置30高级语言程序设计 南京邮电大学传媒技术学院while(条件条件)语句语句A;continue;语句语句 B;真真语句语句B条件条件语句语句Acontinue假假结束循环结束循环至此位置至此位置31高级语言程序设计 南京邮电大学传媒技术学院【例例例例5-35-3】编程实现如下要求:找出编程实现如下要求:找出编程实现如下要求:找出编程实现如下要求:找出1 1到到到到100100之间的前之间的前之间的前之间的前1010个偶数并输出。个偶数并输出。个偶数并输出。个偶数并输出。while(n100)n+;if(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 循环 结构设计 程序设计
限制150内