C语言程序设计教程(第2版)中ppt.ppt

上传人:自*** 文档编号:124337356 上传时间:2020-03-11 格式:PPT 页数:168 大小:802.52KB
返回 下载 相关 举报
C语言程序设计教程(第2版)中ppt.ppt_第1页
第1页 / 共168页
C语言程序设计教程(第2版)中ppt.ppt_第2页
第2页 / 共168页
C语言程序设计教程(第2版)中ppt.ppt_第3页
第3页 / 共168页
C语言程序设计教程(第2版)中ppt.ppt_第4页
第4页 / 共168页
C语言程序设计教程(第2版)中ppt.ppt_第5页
第5页 / 共168页
点击查看更多>>
资源描述

《C语言程序设计教程(第2版)中ppt.ppt》由会员分享,可在线阅读,更多相关《C语言程序设计教程(第2版)中ppt.ppt(168页珍藏版)》请在金锄头文库上搜索。

1、C语言程序设计教程 第2版 中 第6章 循环结构程序设计 本章要点 while语句 do while语句 for语句 break语句和continue语句在循环体中的作用 循环结构的嵌套 本章难点 循环结构的嵌套 能够熟练地使用循环语句进行程序设计 main int i 1 long int sum 1 while i 10 sum sum i i printf 10 ld n sum sum 1 2 3 4 5 6 7 8 9 10 sum 请看下面的程序 循环结构的特点是 程序的流程是在给定条件时 反复执行某个 程序段 语言中可以用以下语句来实现循环 用goto语句和 if 语句构成循环

2、用while语句 用do while语句 用for语句 6 1 while语句 一般形式 while 表达式 语句 执行过程 先计算表达式的值 若表达式的值为真 非0 时执行循环体中的语句 然后重复上面步骤 若 表达式的值为假 0 则 结束循环 6 1 1 while结构的形式 例 计算10 并输出结果的程序用 while语句写出 main int i 1 long int sum 1 while i 10 sum sum i i printf 10 ld n sum main int i 1 long int sum 1 loop if i 10 sum sum i i goto loop

3、printf 10 ld n sum 循环结构的术语 1 循环条件 是循环结构中的测试表达式 如 while i 10 2 循环体 是在每个循环周期均要执行一次的语 句 语句可以是任何语句 简单语句 复合语句 空语句均可以 如 上例while语句中用花括号括起来的复合语句 3 循环控制变量 是在循环条件中控制条件是真 是假的变量 如 上例while语句中使用的变量 i 循环条件中的表达式一般是逻辑表达式 和关系表达式 也可以是算数表达式 非0为 真 0为假 一般表达式中应含有循环控制 变量 while 3 和while 0 虽然从程序设计的 角度上说是不合理的 但是合法的 while 3 语句

4、 表示无限循环 while 0 语句 表示不进入循环体 要写出一个正确的循环结构 对控制变 量要做三方面工作 控制变量赋初值 把 控制变量写入正确的循环条件 控制变量 的更新 调整 6 1 2 while循环的含义 3 循环体包括一个以上语句 则必须用 long int sum 1 while i 10 sum sum i i 4 应该注意条件的选择以避免死循环 int a 5 n 0 while a 5 printf d n 5 允许while语句的循环体也是while语句 从而形 成双重循环 6 2 do while语句 一般形式 do 语句 while 表达式 分号不能少 执行过程 执行

5、循环体中的语句 计算表达式 测试循环 条件 为真 非0 则重复 上面步骤 为假 0 结束 循 环 6 2 1 结构形式 例 将上面计算10 并输出结果的程序用 do while语句写出 main int i 1 long int sum 1 while i 10 sum sum i i printf 10 ld n sum main int i 1 long int sum 1 do sum sum i i while i 10 printf 10 ld n sum 我们将while和do while循环做一下比较 main int i long sum 1 scanf d while i 1

6、0 sum sum i i printf ld n sum main int i long sum 1 scanf d do sum sum i i while i 10 printf ld n sum 输入 9 输出 90 输入 11 输出 1 输入 9 输出 90 输入 11 输出 11 比较上面两个程序 虽然结构是相同的 在 输入值为有效值时结果相同 但当输入无效值时 输出结果是不同的 为什么 而do while语句不管开始的时候测试循环条 件是真是假 循环体都要执行一次 因为循环 体是先于测试条件执行的 while语句进入循环体之前 测试循环条件 表达式必须为真 否则while循环不进

7、入循环体 即循环体可能一次也不执行 while与do while的主要区别 6 2 2 do while循环的含义 do while型循环是先执行后判断的循环 在任何 情况至少执行循环体一次 do while型循环应注意以下几点 1 在if 语句 while语句中 表达式都不能加分号 而在do while语句的表达式后面则必须加分号 2 do while语句可以组成多重循环 而且也可以和 while语句相互嵌套 3 在do和while之间的循环体由多个语句组成时 也 必须加 括起来组成一个复合语句 4 do while和while语句相互替换时 要注意修改循 环控制条件 6 3 for型循环环

8、 一般形式 for 表达式1 表达式2 表达式3 语句 表达式1 一组初始化表达式 表达式2 循环控制条件 表达式3 在执行完循环体语句之后执行的表达式 我们前面已经说明 要正确表达循环结构应 注意三方面的问题 控制变量的初始化 循环的 条件和控制变量的更新 for语句在书写形式上正好体现了这种紧密 的逻辑关系 不能省略不能省略 6 3 1 for循环表现形式 执行过程 求出表达式1的值 若表达式1是逗号表达式 则依次计算 对 表达式2 进行判断 为假退出循环 否则转 执行循环体中语句 执行 表达式3 若 表达式3是逗号表达式 则依次计算 转向 例 将上面计算10 的程序用 for语句写出 m

9、ain int i long sum for i 1 sum 1 i 10 i sum sum i printf 10 ld n sum main int i long sum for i 1 sum 1 i 10 sum sum i i printf 10 ld n sum 空语句 说明 表达式1 用于进入循环体之前给某些变量赋初值 若省略 可在for语句前给变量赋初值 main int i 1 long sum 1 for i 10 i sum sum i printf 10 ld n sum for 循环的三个表达式起着不同的作用 根据需要可以省略 表达式2 决定循环的条件 若省略 则为

10、无限 循环 如 for i 0 i 语句 for 语句 无限循环 死循环 表达式3 用于循环一次后对某些变量进行修改 若省略 可在循环体内对变量进行修改 main int i long sum 1 for i 1 i 10 sum sum i i printf 10 ld n sum for 语句最为灵活 它完全可以代替的while语句 如 i 1 while i 10 sum sum i i 等效于 for i 1 i 10 i sum sum i for语句功能很强 其中表达式1和表达式3可以是 逗号表达式 但为增强程序的可读性 一般不要把 与循环无关的东西放到for语句中 如 sum 1

11、 for i 1 i 10 i sum sum i for 循环变量赋初值 循环条件 循环变量增值 语句 for语句最简单 常用的形式如下 例 从键盘上输入若干学生的成绩 当输入负数 时结束输入 统计并输出最高成绩和最低成绩 空语句 include main float x xmax xmin scanf f xmax x xmin x for x 0 if x xmax xmax x if x xmin xmin x scanf f printf nxmax f nxmin f n xmax xmin 6 3 2 三种循环语句的总结 三种循环语句共同的特点是 当循环控制条件非 零时 执行循环

12、体语句 否则终止循环 语句可以是任何语句 简单语句 复合语句 空 语句均可以 while和for语句先判断循环控制条件 do while语 句后判断循环控制条件 所以 while和for语句的循 环体可能一次也不执行 而do while语句的循环体至 少也要执行一次 在循环体内或循环条件中必须有使循环趋于结束 的语句 否则会出现死循环等异常情况 三种循环可以处理同一问题 一般情况可以互 相代替 但在实际应用中 我们要根据具体情况 来选用不同的循环语句 选用的一般原则如下 如果循环次数在执行循环体之前就已确定 一般 用for语句 如果循环次数是根据循环体的执行情况 确定的 一般用while语句或

13、者do while语句 循环次数确定例 int i long sum 1 for i 1 i 10 i sum sum i 循环次数不确定例 char c do c getchar printf c c while c q c Q 当循环体至少执行一次时 用do while语句 反之 如果循环体可能一次也不执行时 用 while语句 循环体至少执行一次 只有当用户键入q或Q 才结束循环 char c do c getchar printf c c while c q c Q 循环体可能一次不执行 只有不是q或Q的字符才 被打印 char c c getchar while c q c Q pr

14、intf c c c getchar 6 4 循环的嵌套 例 在屏幕上打印一个8行7列的星号矩阵 include main int i for i 0 i 7 i printf 打印第1行星号 printf n for i 0 i 7 i printf 打印第2行星号 printf n for i 0 i 7 i printf 打印第8行星号 什么叫循环嵌套 一个循环的循环体中套有另一个循环 叫循环嵌套 这种嵌套过程可以一直重复 下去 一个循环外面包围一层循环称为二重循环 一个循环外面包围二层循环称为三重循环 一个循环外面包围多层循环称为多重循环 1 while 2 while 3 for w

15、hile do while while 4 do 5 do 6 for for do for while while while while do while for可以互相嵌套自由组合 例 将上例 打印8行7列的星号矩形 用二 重循环实现 include main int i k for i 0 i 8 i for k 0 k 7 k printf printf n 6 5 其他控制语句 6 5 1 break 语句 一般形式 break 功能 结束当前的一层循环 解释 break 语句一般用在循环体的条件语 句中 其作用是当某个条件成立时用 break语句退出循环 不再继续执行 其余的几次

16、循环 例 打印半径为1 10的圆的面积 如果面积超过 100 则不再打印 include define PI 3 14159 main int r float area for r 1 r100 0 break printf area f n area printf now r d n r 注意 在嵌套循环中使用break语句 它只影 响包含它的最内层循环 即程序仅跳出包围 该break的那层循环 例 编写程序 输出三角乘法表 main int i j for i 1 i 9 i for j 1 ji break printf 3d i j printf n 运行结果 1 2 4 3 6 9 4 8 12 16 5 10 15 20 25 6 12 18 24 30 36 7 14 21 28 35 42 49 8 16 24 32 40 48 56 64 9 18 27 36 45 54 63 72 81 一般形式 continue 功能 结束循环体 进入下一个循环周期 解释 一旦执行了continue语句 程序就跳 过循环体中位于该语句后的所有语句 提前结束本次循环周期并开始下一个

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

最新文档


当前位置:首页 > 中学教育 > 教学课件

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