版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、THE C PROGRAMMING LANGUAGE CH6 循环结构 (2) 本章学习目标: 掌握循环语句: while 、dowhile、for 理解它们的区别和联系 理解循环嵌套 理解循环控制语句:break、continue 能读懂和编写简单地循环程序 while ( 表达式表达式 ) 语句语句 1; 语句语句 2; . . . 语句语句 n; 循环体 一般形式: 表达式表达式 真真“非非0” 假假“0” 循环体语句循环体语句 执行过程: 6.1 while语句(当型循环) 循环条件:循环结构中的测试表达式。循环条件:循环结构中的测试表达式。 循环体:循环体: 每个循环周期中都要执行的
2、语每个循环周期中都要执行的语 句序列。句序列。 循环控制变量:在循环条件中控制条件循环控制变量:在循环条件中控制条件 是真是假的变量。是真是假的变量。 循环结构的术语循环结构的术语 #include main() int i,sum;/*定义循环变量和定义循环变量和sum变量变量*/ i=1;/*循环变量赋初值循环变量赋初值*/ sum = 0;/* sum置初值置初值0*/ while(i= 100)/*计算计算100次次*/ sum += i; i +;/*循环变量参与运算后,自加循环变量参与运算后,自加1*/ printf(“1+2+.+100=%d”, sum); /*运算结束,打印运
3、算结果运算结束,打印运算结果 */ 循环条件循环条件 循环控制变量循环控制变量 循环体循环体 【例1】 计算 1+2+100的值 (6) 【例2】 打印 110之间的 所有整数。 #include main() int counter=1; /* 初始化*/ while (counter =10) printf(“%dn”,counter); counter+; printf(“*n”); 注意:注意: (1)(1) whilewhile语句的作用范围。循环体如果包含一个以上的语句,应该用花语句的作用范围。循环体如果包含一个以上的语句,应该用花 括号括起来,否则括号括起来,否则whilewhi
4、le循环体的作用范围只到循环体的作用范围只到whilewhile后面的第一个语句分后面的第一个语句分 号处。号处。 (2)(2) 循环变量必须赋初值,在执行语句中必须发生变化。循环变量必须赋初值,在执行语句中必须发生变化。 (3) (3) 条件最终必须为假,使程序正常结束,避免条件最终必须为假,使程序正常结束,避免“死循环死循环” do 语句语句; ; while(条件)(条件); ; 6.2 do while语句(直到型循环) 语句格式: ;不能省略;不能省略 (8) dowhile语句特点: 先执行循环体语句,后判断循环条件。因此循环体至少 被执行一次。 首先执行循环体语句,然 后计算表达
5、式的值。当表 达式值为“真”时,返回 循环体开始处继续执行循 环体语句;当表达式的值 为“假”,结束循环,执 行下面的语句。 e s 真“非0” 假“0” 执行过程执行过程 (9) 【例3】 打印110 之间的所有 整数。 #include main() int counter=1; do printf(“%dn”,counter); counter+; while (counter =10); printf(“*n”); printf(“the counter is %d”,counter); 1、在dowhile 结构中,循环体应花括号 括起来, 多条语句时不使用花括号,编译报错。 2、应
6、把while(e) 直接写在“”的后面,以免把 while(e) 部分误认为一个新的while 循环的开始。 6.3 for 6.3 for 循环语句循环语句(计数型循环) for ( e1 ; e2 ; e3 ) S; 表达表达 式式 程序语句或程序语句或 分程序分程序(程序程序 块块) e2的值等于的值等于0 跳出循环体跳出循环体 循环体 其中:其中:e1、e2、e3为表达式。为表达式。 e1为初值表达式,用于进入循环之前给循环变量等赋初值。为初值表达式,用于进入循环之前给循环变量等赋初值。 e2 为循环条件表达式,用于指定循环条件。一般为关系表达式或逻辑表达式。为循环条件表达式,用于指定
7、循环条件。一般为关系表达式或逻辑表达式。 e3为修改表达式,用于对循环变量的运算。为修改表达式,用于对循环变量的运算。 S 可以是单个语句、空语句或分程序可以是单个语句、空语句或分程序 (程序块程序块),又叫循环体。,又叫循环体。 for语句比语句比 while 语句功能更强而且更加灵活的一种循环结构。其格式为:语句功能更强而且更加灵活的一种循环结构。其格式为: (1) 计算表达式计算表达式e1。 (2) 计算表达式计算表达式e2,判断其值判断其值,若为若为 真真(非非0),则执行循环体则执行循环体s ,即即(3); 若为假若为假(0),则结束循环。则结束循环。 (3) 执行循环体执行循环体s
8、。 (4) 计算表达式计算表达式e3。 (5) 重复重复 第第 (2)部。部。 语句流程语句流程 特点特点: 进入进入for语句首先执行而且仅执行一次语句首先执行而且仅执行一次e1。循环体每次循环体每次 执行完后要继续执行执行完后要继续执行e3。 for 循环语句的执行流程:循环语句的执行流程: 表达式表达式2 循环体语句循环体语句 真真 假假 表达式表达式1 表达式表达式3 for ( e1 ; e2 ; e3 ) S; 【例4】:打印110之间的所有整数。 #include main() int counter; for (counter=1;counter =10;counter+) p
9、rintf(“%dn”,counter) ; printf(“*n”) ; 变量的初始值、循环条件、循 环计数器值的递增都包含在for 结构的头部。 1.e11.e1、e2e2、e3e3三个表达式均可省略,但其中的分号三个表达式均可省略,但其中的分号“ “ ; ”; ”不能省略。不能省略。 for ( ; ; ) . s ; 2.2.三个表达式三个表达式 e1e1、e2e2、e3e3都省略,即都省略,即 for ( ; ; )for ( ; ; ),则完全等同于,则完全等同于 while while ( 1 )( 1 ),无终止地执行循环体。,无终止地执行循环体。 3.3.只省略表达式只省略表
10、达式e2e2,即,即 for ( e1; ; e3 )for ( e1; ; e3 ),省略循环判断的条件,则循环将,省略循环判断的条件,则循环将 无终止地执行循环体。无终止地执行循环体。 5.5.如果只有表达式如果只有表达式e2e2,即,即 for ( ; e2 ; )for ( ; e2 ; ),则完全等同于,则完全等同于 while (e) while (e) 语句。语句。 for ( ; n=10; ) sum=sum+n; n+; while (n=10) sum=sum+n; n+; 注意:注意: (14) 【例5】下列程序的运行结果是: #include main( ) int
11、a=10,b=5,c=5,d=5; int i=0,j=0,k=0; for( ;ab;+b) i+; while (a+c) j+; do k+; while(a+d); printf(“i=%d,j=%d,k=%dn”,i,j,k); i: 0 i: 0 、 4 4 、 5 5 j: 0 j: 0 、 4 4 、 5 5 k: 0 k: 0 、 4 4 、 5 5 6.4 三种循环语句的比较三种循环语句的比较 for (e1;e2;e3) s; 最多 do s; while (e); 最少 while (e) s; 中 1. C语言的三种循环语句可以用来处理同一问题,一般情况下可以互换。语
12、言的三种循环语句可以用来处理同一问题,一般情况下可以互换。 但是功能和灵活程度不同。但是功能和灵活程度不同。for语句功能最强语句功能最强, 最灵活最灵活,使用最多使用最多,任何循环任何循环 都可以用都可以用for实现实现; 其次是其次是while; do-while用的最少。用的最少。 int sum,n; sum=0,n=1; while (n=100) sum+=n; n+; int sum,n; sum=0,n=1; do sum+=n; n+; while (n=100); int sum,n; for(sum=0,n=1;n=100;n+) sum+=n; 2. while和和do
13、-while 的循环变量初始化是在循环语句之前完成的循环变量初始化是在循环语句之前完成, 而而for语语 句循环变量的初值是在句循环变量的初值是在 for中的中的e1表达式中实现。表达式中实现。 int sum,n; for(sum=0,n=1;n=100;n+ ) sum+=n; while (e) s; do s; while (e); 3. for循环语句中的第一个和第三个表达式(循环语句中的第一个和第三个表达式(e1、e3)可以是逗号表可以是逗号表 达式达式, 它扩充了它扩充了for语句的作用范围,使它有可能同时对若干参数进行语句的作用范围,使它有可能同时对若干参数进行 初始化和修正等
14、。初始化和修正等。 先判断循环条件,后执行循环体。先判断循环条件,后执行循环体。 int sum,n; sum=0,n=1; while (n=100) sum+=n; n+; int sum,n; for(sum=0,n=1;n=100;n+) sum+=n; 此时要注意第一次循环是一次无条此时要注意第一次循环是一次无条 件循环,它不受任何条件的约束。件循环,它不受任何条件的约束。 先执行一次循环体先执行一次循环体 再判断循环条件。再判断循环条件。 int sum,n; sum=0,n=1; do sum+=n; n+; while (n=100); 4. for 和和 while循环语句是
15、先判断循环条件,后执行循环体;循环语句是先判断循环条件,后执行循环体; 而而do-while 循环语句则是先执行一次循环体,然后才判断循环条件。因此循环语句则是先执行一次循环体,然后才判断循环条件。因此,后者不管后者不管 什么情况,都至少执行一次循环体。什么情况,都至少执行一次循环体。 程序举例程序举例 main() int i; float a=2, b=1, s=0, w; for( i=1; i= 20 ; i+ ) s = s+a/b; w= a; a= a+b; b= w; printf(sum=%fn,s); 例6 已知 s =2/1 + 3/2 + 5/3 + 8/5 + 13/8 + 计算前20项之和 规律: 后一项的“分子”为前一项分子与分母之和 后一项的“分母”为前一项分子 main() int i=0; float a=2, b=1, s=0, w; while( i 20 ) i+; s += a/b
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024-2030年中国有机棉市场动态分析及投资策略研究报告
- 2024-2030年中国无花果行业需求量预测及发展规模分析报告
- 2024-2030年中国旅游演出行业前景预测及投资运作模式分析报告版
- 2024-2030年中国新型冰箱节能技术市场前景预测及投资战略分析报告
- 2024-2030年中国整形美容行业经营模式及投资规划研究报告
- 2024-2030年中国数据通讯转换器行业发展现状及投资模式分析报告
- 2024-2030年中国扦脚刀行业供需状况发展战略规划分析报告
- 2024至2030年中国投影机交剪式电动吊架数据监测研究报告
- 2024-2030年中国戒烟产品市场营销模式及投资策略分析报告
- 2024-2030年中国微动开关行业竞争策略及发展潜力研究报告
- 医疗质量管理与持续改进记录表
- 最新《辅酶q10》课件
- 西方医学史概要课件
- 石化项目设备及管道防腐保温施工方案
- Unit 1 Food comments 课件-高中英语外研版(2019)必修第二册
- 2022年乌鲁木齐市法院书记员招聘考试题库及答案解析
- 应急预案救援物资检查表
- 安全隐患排查记录表
- 浙美版美术四上第5课《美术档案袋》课件1
- 初中 初一 心理健康 我有我气质 课件
- DB12T 907-2019 牛粪制备卧床垫料技术规程
评论
0/150
提交评论