循环结构程序设计C语言程序.ppt
《循环结构程序设计C语言程序.ppt》由会员分享,可在线阅读,更多相关《循环结构程序设计C语言程序.ppt(92页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 While、do-while、for语句 循环嵌套 Break、continue、goto语句 exit()函数 循环结构类型的选择及转换 循环结构程序设计举例 本章小结u学习目标学习目标 理解循环结构的含义;掌握C语言三种循环结构的特点;掌握while、do-while、for、goto、break、continue语句的使用方法;掌握不同循环结构的选择及其转换方法;掌握混合控制结构程序设计的方法。u学习内容学习内容 5.1 5.1 循环结构的程序设计循环结构的程序设计 1.while1.while1.while1.while语句语句语句语句 一般形式:一般形式:一般形式:一般形式:whi
2、le(while(表达式表达式表达式表达式)循环体语句;循环体语句;循环体语句;循环体语句;执行流程:执行流程:执行流程:执行流程:F F T Texprexpr循环体循环体循环体循环体whilewhile其中:其中:其中:其中:l l whilewhilewhilewhile后面的括号(后面的括号(后面的括号(后面的括号()不能省。)不能省。)不能省。)不能省。l l whilewhilewhilewhile后面的表达式可以是任意类型后面的表达式可以是任意类型后面的表达式可以是任意类型后面的表达式可以是任意类型的表达式,但一般是条件表达式或逻辑的表达式,但一般是条件表达式或逻辑的表达式,但一
3、般是条件表达式或逻辑的表达式,但一般是条件表达式或逻辑表达式。表达式。表达式。表达式。l l 表达式的值是是循环的控制条件。表达式的值是是循环的控制条件。表达式的值是是循环的控制条件。表达式的值是是循环的控制条件。l l 语句部分称为循环体,当需要执行多语句部分称为循环体,当需要执行多语句部分称为循环体,当需要执行多语句部分称为循环体,当需要执行多条语句时,应使用复合语句条语句时,应使用复合语句条语句时,应使用复合语句条语句时,应使用复合语句。特点:先判断表达式,再执行循环体特点:先判断表达式,再执行循环体特点:先判断表达式,再执行循环体特点:先判断表达式,再执行循环体l说明:循环体有可能一次
4、也不执行循环体如包括有一个以上的语句,则必须用 括起来,组成复合语句。下列情况,退出while循环条件表达式不成立(为零)循环体内遇break,return,goto无限循环:while(1)循环体;【例【例【例【例5-15-15-15-1】用用用用whilewhilewhilewhile语句求语句求语句求语句求1 1 1 1100100100100的累计和。的累计和。的累计和。的累计和。#include#include void main()void main()int i=1,sum=0;int i=1,sum=0;while(i=100)while(i=100)sum+=i;sum+=i
5、;i+;i+;printf(sum=%dn,sum);printf(sum=%dn,sum);循环初值循环初值循环初值循环初值循环终值循环终值循环终值循环终值循环条件循环条件循环条件循环条件循环体循环体循环体循环体循环变量增值循环变量增值循环变量增值循环变量增值运行结果:运行结果:运行结果:运行结果:运行结果:运行结果:sum=5050sum=5050sum=5050注意:注意:循环要赋初值,初值要放在循环体外。【例【例【例【例6-1p6-1p6-1p6-1p】显示】显示】显示】显示1 1 1 110101010的平方的平方的平方的平方#include#include void main()v
6、oid main()int i=1;int i=1;while(i=10)while(i 0)while(a 0)/a 0/a 0为假,为假,为假,为假,b+b+不可能执行不可能执行不可能执行不可能执行 b+;b+;(4)(4)(4)(4)在执行在执行在执行在执行whilewhilewhilewhile语句之前,循环控制变量必须初始化,语句之前,循环控制变量必须初始化,语句之前,循环控制变量必须初始化,语句之前,循环控制变量必须初始化,否则执行的结果将是不可预知的。否则执行的结果将是不可预知的。否则执行的结果将是不可预知的。否则执行的结果将是不可预知的。(5)(5)(5)(5)要在要在要在要在
7、whilewhilewhilewhile语句的某处(表达式或循环体内)改变语句的某处(表达式或循环体内)改变语句的某处(表达式或循环体内)改变语句的某处(表达式或循环体内)改变循环控制变量,否则极易构成死循环。循环控制变量,否则极易构成死循环。循环控制变量,否则极易构成死循环。循环控制变量,否则极易构成死循环。(6)(6)(6)(6)允许允许允许允许whilewhilewhilewhile语句的循环体又是语句的循环体又是语句的循环体又是语句的循环体又是whilewhilewhilewhile语句,从而形语句,从而形语句,从而形语句,从而形成双重循环。成双重循环。成双重循环。成双重循环。whil
8、ewhilewhilewhile语句注意事项:语句注意事项:语句注意事项:语句注意事项:例:计算例:计算例:计算例:计算10!10!10!10!#include#include void main()void main()int i;int i;/i/i应赋初始值应赋初始值应赋初始值应赋初始值1010 long s=1;long s=1;while(i=1)while(i=1)s*=i-;s*=i-;printf(10!=%ldn,s);printf(10!=%ldn,s);i=1;i=1;while(i 100)while(i 100)/死循环,因为死循环,因为死循环,因为死循环,因为i i
9、的值没变化,永远小于的值没变化,永远小于的值没变化,永远小于的值没变化,永远小于100100 sum+=i;sum+=i;printf(sum=%dn,sum);printf(sum=%dn,sum);i=1;i=1;while(i=9)while(i=9)j=1;j=1;while(j=9)while(j=9)printf(%d*%d=%dn,i,j,i*j);printf(%d*%d=%dn,i,j,i*j);j+;j+;i+;i+;while(1)while(1)循环体循环体循环体循环体;main()int a=1,n;printf(n input n:);scanf(%d,&n);wh
10、ile(n-)printf(%d ,a+*2);输入:n=2n-=2a+a=1a+*2 输出:2n=1 a=2n=1 a=2a+a=2a+*2 输出:4n-=0 a=32.do_while2.do_while2.do_while2.do_while语句语句语句语句 一般形式:一般形式:一般形式:一般形式:do do do do 循环体语句;循环体语句;循环体语句;循环体语句;while(while(while(while(表达式表达式表达式表达式););););执行流程:执行流程:执行流程:执行流程:其中:其中:其中:其中:l l whilewhilewhilewhile后面的括号(后面的括号
11、(后面的括号(后面的括号()不能省。)不能省。)不能省。)不能省。l l whilewhilewhilewhile最后面的分号最后面的分号最后面的分号最后面的分号;不能省。不能省。不能省。不能省。l l whilewhilewhilewhile后面的表达式可以是任意类型后面的表达式可以是任意类型后面的表达式可以是任意类型后面的表达式可以是任意类型的表达式,但一般是条件表达式或逻辑的表达式,但一般是条件表达式或逻辑的表达式,但一般是条件表达式或逻辑的表达式,但一般是条件表达式或逻辑表达式。表达式。表达式。表达式。l l 表达式的值是是循环的控制条件。表达式的值是是循环的控制条件。表达式的值是是循
12、环的控制条件。表达式的值是是循环的控制条件。l l 语句部分称为循环体,当需要执行多语句部分称为循环体,当需要执行多语句部分称为循环体,当需要执行多语句部分称为循环体,当需要执行多条语句时,应使用复合语句条语句时,应使用复合语句条语句时,应使用复合语句条语句时,应使用复合语句。F F T Texprexpr循环体循环体循环体循环体dodowhilewhile特点:先执行循环体,再判断表达式特点:先执行循环体,再判断表达式特点:先执行循环体,再判断表达式特点:先执行循环体,再判断表达式【例【例【例【例5.25.25.25.2】用用用用do_whiledo_whiledo_whiledo_whil
13、e语句求语句求语句求语句求1 1 1 1100100100100的累计和。的累计和。的累计和。的累计和。#include#include void main()void main()int i=1,sum=0;int i=1,sum=0;do do sum+=i;sum+=i;i+;i+;while(i=100);while(i 0);while(a 0);(1)(1)(1)(1)如果如果如果如果do-whiledo-whiledo-whiledo-while后的表达式的值一开始就为假,循环后的表达式的值一开始就为假,循环后的表达式的值一开始就为假,循环后的表达式的值一开始就为假,循环体还是要
14、执行一次。体还是要执行一次。体还是要执行一次。体还是要执行一次。(2)(2)(2)(2)在在在在ifififif语句、语句、语句、语句、whilewhilewhilewhile语句中,表达式后面都不能加分号,语句中,表达式后面都不能加分号,语句中,表达式后面都不能加分号,语句中,表达式后面都不能加分号,而在而在而在而在do-whiledo-whiledo-whiledo-while语句的表达式后面则必须加分号,否则将产生语句的表达式后面则必须加分号,否则将产生语句的表达式后面则必须加分号,否则将产生语句的表达式后面则必须加分号,否则将产生语法错误。语法错误。语法错误。语法错误。(3)(3)(3
15、)(3)循环体中的语句可为任意类型的循环体中的语句可为任意类型的循环体中的语句可为任意类型的循环体中的语句可为任意类型的C C C C语句。语句。语句。语句。(4)(4)(4)(4)和和和和whilewhilewhilewhile语句一样,在使用语句一样,在使用语句一样,在使用语句一样,在使用do-whiledo-whiledo-whiledo-while语句时,不要语句时,不要语句时,不要语句时,不要忘记初始化循环控制变量,否则执行的结果将是不可预知的。忘记初始化循环控制变量,否则执行的结果将是不可预知的。忘记初始化循环控制变量,否则执行的结果将是不可预知的。忘记初始化循环控制变量,否则执行
16、的结果将是不可预知的。(5)(5)(5)(5)要在要在要在要在do-whiledo-whiledo-whiledo-while语句的某处(表达式或循环体内)改语句的某处(表达式或循环体内)改语句的某处(表达式或循环体内)改语句的某处(表达式或循环体内)改变循环控制变量的值,否则极易构成死循环。变循环控制变量的值,否则极易构成死循环。变循环控制变量的值,否则极易构成死循环。变循环控制变量的值,否则极易构成死循环。(6)do-while (6)do-while (6)do-while (6)do-while语句也可以组成多重循环,而且也可以和语句也可以组成多重循环,而且也可以和语句也可以组成多重循
17、环,而且也可以和语句也可以组成多重循环,而且也可以和whilewhilewhilewhile语句相互嵌套。语句相互嵌套。语句相互嵌套。语句相互嵌套。例例5.3 while和和dowhile比较比较#include main()int i,sum=0;scanf(%d,&i);do sum+=i;i+;while(i=10);printf(%d,sum);main()int i,sum=0;scanf(%d,&i);while(i=10)sum+=i;i+;printf(%d,sum);输入:输入:1输出:输出:55输出:输出:55输入:输入:11输出:输出:11输出:输出:0Do while语
18、句先执行循环体语句先执行循环体i+,sum=0+11.再判断表达式再判断表达式i=10,不满足,退出。,不满足,退出。While语句先判断表达式语句先判断表达式i=10,不满足,退出,不,不满足,退出,不执行循环体执行循环体当当while后面的表达式的第一次的值为后面的表达式的第一次的值为“真真”时,两种循环得到的结果相同;否则不相同时,两种循环得到的结果相同;否则不相同3.for3.for3.for3.for语句语句语句语句 一般形式:一般形式:一般形式:一般形式:for(for(for(for(表达式表达式表达式表达式1 1 1 1;表达式;表达式;表达式;表达式2 2 2 2;表达式;表
19、达式;表达式;表达式3)3)3)3)循环体语句;循环体语句;循环体语句;循环体语句;执行流程:执行流程:执行流程:执行流程:其中:其中:其中:其中:l l forforforfor后面的括号(后面的括号(后面的括号(后面的括号()不能省。)不能省。)不能省。)不能省。l l 表达式表达式表达式表达式1 1 1 1:一般为赋值表达式,给控一般为赋值表达式,给控一般为赋值表达式,给控一般为赋值表达式,给控制变量赋初值。制变量赋初值。制变量赋初值。制变量赋初值。l l 表达式表达式表达式表达式2 2 2 2:关系表达式或逻辑表达式,关系表达式或逻辑表达式,关系表达式或逻辑表达式,关系表达式或逻辑表达
20、式,循环控制条件。循环控制条件。循环控制条件。循环控制条件。l l 表达式表达式表达式表达式3 3 3 3:一般为赋值表达式,给控一般为赋值表达式,给控一般为赋值表达式,给控一般为赋值表达式,给控制变量增量或减量。制变量增量或减量。制变量增量或减量。制变量增量或减量。l l 表达式之间用分号分隔。表达式之间用分号分隔。表达式之间用分号分隔。表达式之间用分号分隔。l l 语句部分称为循环体,当需要执行多语句部分称为循环体,当需要执行多语句部分称为循环体,当需要执行多语句部分称为循环体,当需要执行多条语句时,应使用复合语句。条语句时,应使用复合语句。条语句时,应使用复合语句。条语句时,应使用复合语
21、句。FTexpr2expr2循环体循环体循环体循环体forforexpr1expr1expr3expr3forforforfor语句很好地体现了正确表达循环结构应注意的三个问题:语句很好地体现了正确表达循环结构应注意的三个问题:语句很好地体现了正确表达循环结构应注意的三个问题:语句很好地体现了正确表达循环结构应注意的三个问题:控制变量的初始化。控制变量的初始化。控制变量的初始化。控制变量的初始化。循环的条件。循环的条件。循环的条件。循环的条件。循环控制变量的更新。循环控制变量的更新。循环控制变量的更新。循环控制变量的更新。【例【例【例【例5-45-45-45-4】用用用用forforforfo
22、r语句求语句求语句求语句求1 1 1 1100100100100的累计和。的累计和。的累计和。的累计和。#include#include void main()void main()int i,sum=0;int i,sum=0;for(i=1;i=100;i+)for(i=1;i=100;i+)sum+=i;sum+=i;printf(sum=%dn,sum);printf(sum=%dn,sum);运行结果:运行结果:运行结果:运行结果:运行结果:运行结果:sum=5050sum=5050sum=5050 forforforfor语句注意事项:语句注意事项:语句注意事项:语句注意事项:例:
23、计算例:计算例:计算例:计算1*2+3*4+5*6+99*1001*2+3*4+5*6+99*100。int i,j;int i,j;long sum=0;long sum=0;for(i=1,j=2;i=99;i=i+2,j=j+2)for(i=1,j=2;i=99;i=i+2,j=j+2)sum+=i*j;sum+=i*j;printf(sum=%ldn,sum);printf(sum=%ldn,sum);(1)(1)(1)(1)表达式表达式表达式表达式1 1 1 1、表达式、表达式、表达式、表达式2 2 2 2、和表达式、和表达式、和表达式、和表达式3 3 3 3可以是任何类型的表可以是
24、任何类型的表可以是任何类型的表可以是任何类型的表达式。比方说,这三个表达式都可以是逗号表达式,即每个表达式。比方说,这三个表达式都可以是逗号表达式,即每个表达式。比方说,这三个表达式都可以是逗号表达式,即每个表达式。比方说,这三个表达式都可以是逗号表达式,即每个表达式都可由多个表达式组成。达式都可由多个表达式组成。达式都可由多个表达式组成。达式都可由多个表达式组成。逗号表达式逗号表达式逗号表达式逗号表达式逗号表达式逗号表达式逗号表达式逗号表达式#include#include void main()void main()int i,sum=0;int i,sum=0;i=1;i=1;for(;
25、i=100;i+)for(;i=100;i+)sum+=i;sum+=i;printf(sum=%dn,sum);printf(sum=%dn,sum);#include#include void main()void main()int i,sum=0;int i,sum=0;i=1;i=1;for(;i=100;)for(;i=100;)sum+=i+;sum+=i+;printf(sum=%dn,sum);printf(sum=%dn,sum);forforforfor语句注意事项:语句注意事项:语句注意事项:语句注意事项:省掉表达式省掉表达式省掉表达式省掉表达式1,31,3省掉表达式省
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 循环 结构 程序设计 语言 程序
限制150内