




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2022-4-81 Program Design in C LanguagePagewhile语句语句do-while语句语句for语句语句第六讲第六讲第五章第五章 2022-4-82 Program Design in C LanguagePage循环结构循环结构也称重复结构:程序中反复执行的一也称重复结构:程序中反复执行的一组指令或程序段。组指令或程序段。循环体循环体:被反复执行的程序段。被反复执行的程序段。循环变量循环变量:用来控制循环是否继续进行的变量。用来控制循环是否继续进行的变量。 循环结构有两种类型即循环结构有两种类型即当型循环当型循环和和 直到型循环。直到型循环。5.1用whi
2、le语句实现循环结构2022-4-83 Program Design in C LanguagePage方框图及执行过程方框图及执行过程 : 非0(真) 0(假) 表达式 语 句 当型循环当型循环 非 0 (真) 0 (假) 语句 A 表达式 直到型循环直到型循环5.1用while语句实现循环结构2022-4-84 Program Design in C LanguagePage格式格式: while () 语句语句A 非 0(真) 0(假) 语句 A 表达式 流程图:流程图:若表达式(条件)若表达式(条件)的值为真,则执行的值为真,则执行内嵌语句内嵌语句A,然后,然后再判断表达式(条再判断表
3、达式(条件)件),当表达式,当表达式的值为假时,执行的值为假时,执行while后面的语句。后面的语句。5.1用while语句实现循环结构while 语句语句2022-4-85 Program Design in C LanguagePagewhile语句的语句的说明:说明:(1)while语句属语句属当型循环当型循环,即先判断,即先判断条件(表达式),再执行循环体。条件(表达式),再执行循环体。(2)表达式为一条件,用于控制循环表达式为一条件,用于控制循环是否可继续执行,故称控制表达式。是否可继续执行,故称控制表达式。(3)语句语句A为内嵌语句,是循环结构为内嵌语句,是循环结构的循环体。它可以
4、是单语句也可以的循环体。它可以是单语句也可以是复合语句。是复合语句。 非0 (真) 0 (假) 语句A 表达式 5.1用while语句实现循环结构2022-4-86 Program Design in C LanguagePage例例 求求 1 + 2 + + 100分析:分析: 求和的过程为:求和的过程为: 1) S0 = 1 S = S + S0 2) S1 = 2 S = S + S1 3) S2 = 3 S = S + S2 100) S99 = 100 S = S+S99S = 0求和表达式:求和表达式: S = S + i初值:初值: S = 0循环次数循环次数 i :11005.
5、1用while语句实现循环结构2022-4-87 Program Design in C LanguagePage定 义 变 量 s , is =0 , i=1 ;i1 0 0s +=i;i+;输 出 sNY流程图:流程图:程序:程序:#includevoid main( ) int s, i; s = 0, i = 1; while( i = 100 ) s+=i; i+; printf(s=%dn, s); 5.1用while语句实现循环结构2022-4-88 Program Design in C LanguagePage注意:注意:如果循环体中包含一个以上的语句,应该用花括弧括起如果循
6、环体中包含一个以上的语句,应该用花括弧括起来,以复合语句的形式出现。如果不加花括弧,则来,以复合语句的形式出现。如果不加花括弧,则while语句的范围只到语句的范围只到while后的第一个分号处。后的第一个分号处。在循环体中应该有使循环趋向结束的语句,否则会导致在循环体中应该有使循环趋向结束的语句,否则会导致死循环。死循环。如上例中的语句改写如上例中的语句改写成如下形式:成如下形式: i=1; while( i = 100 ) s+=i; i+; 则则while语句的循环体为:语句的循环体为: s+=i;循环变量循环变量i的值没有改变,循的值没有改变,循环不能终止,陷入死循环环不能终止,陷入死
7、循环5.1用while语句实现循环结构2022-4-89 Program Design in C LanguagePagedo-while 语句语句格式:格式: do 语句语句A while ( );流程图:流程图: 非非 0 0(真)(真) 0 0(假)(假) 语句语句 A 表达式表达式 5.2用do-while语句实现循环结构2022-4-810 Program Design in C LanguagePage先执行内嵌语句先执行内嵌语句A,然后再计算表达式(条件),然后再计算表达式(条件),当表达式的值为非当表达式的值为非0(真)时,重新执行内嵌语句(真)时,重新执行内嵌语句A,如此循环
8、,直到表达式的值为如此循环,直到表达式的值为0(假)时,执行(假)时,执行do-while后面的语句。后面的语句。执行过程:执行过程:与与while语句的不同:语句的不同:do-while语句语句至少执行循环体一次,但至少执行循环体一次,但while语句语句当条件为假时不执行循环体语句。当条件为假时不执行循环体语句。5.2用do-while语句实现循环结构2022-4-811 Program Design in C LanguagePage例:例:while与与do-while区别区别#include void main( ) int i=65; do putchar(i); i+; whil
9、e(iA);#include void main( ) int i=65; while(iA) putchar(i); i+; 无输出无输出输出输出A5.2用do-while语句实现循环结构2022-4-812 Program Design in C LanguagePage5.2用do-while语句实现循环结构例例 求求 1 + 2 + + 100程序:程序:#includevoid main( ) int s, i; s = 0; i = 1; do s+=i; i+; while( i = 100 ); printf(s=%dn, s); 2022-4-813 Program Desi
10、gn in C LanguagePagefor 语句语句各部分的作用:各部分的作用:l 表达式表达式1 :循环变量赋初值。循环变量赋初值。l 表达式表达式2 :循环控制条件,若省略,则认为循环条循环控制条件,若省略,则认为循环条件恒为件恒为“真真”。l 表达式表达式3 :修改循环变量的值。修改循环变量的值。l 语语 句句A :循环体循环体格式:格式: for ( 表达式表达式 1; 表达式表达式2; 表达式表达式3 ) 语语 句句A5.3用for语句实现循环结构2022-4-814 Program Design in C LanguagePage 表达式表达式2 2 语句语句A A假假 表达式
11、表达式3 3ForFor循环的循环的 下一语句下一语句真真表达式表达式1 1流程图:流程图:5.3用for语句实现循环结构2022-4-815 Program Design in C LanguagePage5.2用do-while语句实现循环结构例例 求求 1 + 2 + + 100程序:程序:#includevoid main( ) int s, i; for(s=0, i=1; i=100; i+) s+=i; printf(s=%dn, s); 2022-4-816 Program Design in C LanguagePage说明:说明:l for语句一般形式中的语句一般形式中的表
12、达式表达式1可以省略。此时可以省略。此时应在应在for语句之前给循环变量赋初值。语句之前给循环变量赋初值。 如:如:s=0; i=1; for( ; i=100; i+) s+=i;l 如果如果表达式表达式2省略,则认为省略,则认为表达式表达式2始终为真,始终为真,循环会无终止的运行下去。循环会无终止的运行下去。 如:如:for(s=0, i=1; ; i+) s+=i;5.3用for语句实现循环结构2022-4-817 Program Design in C LanguagePage说明:说明:l 表达式表达式3省略时,应通过其它方法保证循环能正省略时,应通过其它方法保证循环能正常结束。如在
13、循环体内修改循环变量。常结束。如在循环体内修改循环变量。 如:如:for(s=0, i=1; i=100;) s+=i; i+; l 表达式表达式1和和表达式表达式3可以是简单的表达式,也可可以是简单的表达式,也可以是逗号表达式;可以与循环变量有关,也可以是逗号表达式;可以与循环变量有关,也可以与循环变量无关。以与循环变量无关。 如:如:for(s=0, i=1; i=100;s+=i, i+);5.3用for语句实现循环结构2022-4-818 Program Design in C LanguagePage例例:求:求 n!5.3用for语句实现循环结构#include#define N
14、10void main( ) int i; double s=1.0; for(i=1; i=N; i+) s *= i; printf(s=%.0fn, s); 2022-4-819 Program Design in C LanguagePagel 三种循环可以互相代替。三种循环可以互相代替。l for、while属当型循环,属当型循环,dowhile循环属直到型循循环属直到型循环。环。l 在在for循环的循环体中无须对循环变量进行修改,循环的循环体中无须对循环变量进行修改,其它两种循环则必须在循环体中对循环变量进行其它两种循环则必须在循环体中对循环变量进行修改。修改。l for循环的循环
15、变量初始值可在表达式循环的循环变量初始值可在表达式1中进行设中进行设置,其它两种循环则必须在进入循环之前进行设置,其它两种循环则必须在进入循环之前进行设置。置。三种循环几点说明:三种循环几点说明:三种循环结构实例2022-4-820 Program Design in C LanguagePage例例:求水仙花数,即这个数等于它的百位、十位:求水仙花数,即这个数等于它的百位、十位和个位数的立方和。和个位数的立方和。如如153是一个水仙花数,因为是一个水仙花数,因为153333351分别用三种循环语句编写该程序。分别用三种循环语句编写该程序。三种循环结构实例2022-4-821 Program
16、Design in C LanguagePage#includevoid main( ) int n=100,i,j,k; /*i、j、k分别存放百位、十位、个位分别存放百位、十位、个位*/ printf(水仙花数是:水仙花数是:); while(n1000) i=n/100; j=(n/10)%10; k=n%10; if(n=i*i*i+j*j*j+k*k*k) printf(%6d,n); n=n+1; printf(n);三种循环结构实例2022-4-822 Program Design in C LanguagePage三种循环结构实例#includevoid main( ) int
17、 n=100,i,j,k; /*i、j、k分别存放百位、十位、个位分别存放百位、十位、个位*/ printf(水仙花数是:水仙花数是:); do i=n/100; j=(n/10)%10; k=n%10; if(n=i*i*i+j*j*j+k*k*k) printf(%6d,n); n=n+1; while(n1000); printf(n);2022-4-823 Program Design in C LanguagePage三种循环结构实例#includevoid main( ) int n,i,j,k; /*i、j、k分别存放百位、十位、个位分别存放百位、十位、个位*/ printf(水
18、仙花数是:水仙花数是:); for(n=100;n1000;n+) i=n/100; j=(n/10)%10; k=n%10; if(n=i*i*i+j*j*j+k*k*k) printf(%6d,n); printf(n);2022-4-824 Program Design in C LanguagePage例例 编程编程 :求:求 。直到最后一项的绝对值小于直到最后一项的绝对值小于1010-7 -71n211)(7151311S1n分析:分析:1071n1n21)(三种循环结构实例715131142022-4-825 Program Design in C LanguagePage1n21)(1nss求和:求和:停止求和:停止求和:1071n1n21)(三种循环结构实例#includevoid main( ) double s=0.0, t=1.0; int n=1; do s+=t/(2*n-1); n+; t=-t; while(1./(2*n-1)=1e-7);
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 软件测试基础知识试题及答案
- 2025届钦州市重点中学数学七下期末复习检测模拟试题含解析
- 2025届北京东城二中学八年级数学第二学期期末质量检测试题含解析
- C++高级编程技巧试题及答案
- 网络安全攻防演练中的策略与技巧试题及答案
- 如何开展精益管理实践计划
- 医院内部培训体系建设计划
- 重庆市彭水一中学2025届七年级数学第二学期期末教学质量检测模拟试题含解析
- 软件开发常见问题解析试题及答案
- 城市交通与城市规划方法创新研究重点基础知识点
- 烟草专卖合同协议书
- 国有融资担保公司笔试真题解析
- 24秋国家开放大学《社会教育及管理》形考任务1-3参考答案
- 2024年江西省高考化学试卷(真题+答案)
- 大美劳动智慧树知到期末考试答案章节答案2024年江西财经大学
- MOOC 光纤光学-华中科技大学 中国大学慕课答案
- 建筑史智慧树知到期末考试答案2024年
- 《苏幕遮燎沉香》教学设计
- 个人征信报告模板2020年word版可编辑带水印
- 保险建议书范本
- SF-36简明健康状况量表
评论
0/150
提交评论