C语言第五章.ppt_第1页
C语言第五章.ppt_第2页
C语言第五章.ppt_第3页
C语言第五章.ppt_第4页
C语言第五章.ppt_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 第五章循环结构 在C语言中可用以下语句来实现循环 用goto语句和if语句构成循环用while语句用do while语句用for语句 2 5 1goto语句与标号 一般形式 goto标号 其中 标号用标识符表示 即由字母 数字和下划线组成 且首字符必须为字母或下划线 不能用整数来作标号功能 当程序执行到语句时 改变程序自上而下的执行顺序 执行语句标号指定的语句 并从该语句继续往下顺序执行程序 用途 1 与if语句一起构成循环结构2 从循环体内跳到循环体外 3 例1 求和sum 1 2 100main inti 1 sum 0 L1 if i 100 gotoL2 sum sum i i gotoL1 L2 printf 1 3 100 d n sum 非零 零 4 另一写法 main inti 1 sum 0 L if i 100 sum sum i i gotoL printf d sum 用if与goto构成 当型 循环 5 5 2while循环语句5 2 1while循环语句的形式while 条件表达式 语句 while循环语句的执行过程是 先判断条件 后执行语句 条件表达式 语句 零 非零 5 2 2执行过程 这是内嵌语句 也称为循环体 它可以是单语句 也可以是复合语句 6 说明 1 执行while循环语句时 如果表达式的值第一次计算就等于0 则循环体一次也不执行 2 发生下列情况之一时 while循环结束执行 表达式的值为0 循环体内遇到break语句 循环体内遇到goto语句 且与该goto语句配合使用的标号所指定的语句在本循环体外 循环体内遇到return语句 此时退出while循环后 执行的流程从包含该while语句的函数返回到所调用函数 7 前例用while语句写 main inti sum 0 i 1 while i 100 sum sum i i printf d sum 8 1 do while循环语句的形式do语句while 条件表达式 2 执行过程 说明 1 do while循环语句首先执行循环体 然后计算表达式并检查循环条件 所以循环体至少执行一次 2 退出do while循环的条件与退出while循环的条件相同 5 3do while循环语句 注意 不要丢掉分号 do while循环执行过程是 先执行语句 后判断条件 9 前例用do while循环写 main inti sum 0 i 1 do sum sum i i while i 100 printf d sum 10 例2 求级数12 22 32 前10项之和 main inti sum 0 i 1 do sum i i i while i 10 printf sum d n sum 等价于 sum sum i i 等价于 i i 1 11 例3 求1 2 3 n的值 n值通过键盘输入 main intn i 1 s 0 printf Pleaseinputaninteger n scanf d main intn i 1 s 0 printf Pleaseinputaninteger n scanf d 12 结论 当while后的表达式为真时 while语句和do while语句的结果相同 否则不同 main inti s 0 scanf d 输入 1打印 55输入 11打印 0 main inti s 0 scanf d 输入 1打印 55输入 11打印 11 13 练习1 下面程序的运行结果是 main inti 10 while i 0 printf d n i 练习2 main intx 3 doprintf 3d x 2 while x 输出结果 1 输出结果 1 2 是空语句 14 5 4for循环语句 1 for循环语句的形式for 表达式1 表达式2 表达式3 语句 2 执行过程 说明 1 表达式1仅被执行一次 表达式2决定了是否继续执行循环 表达式3则不断修改循环控制变量的值 2 三个表达式均可省略 分号不能省略 15 3 说明 1 最简单的应用形式 for 循环变量赋初值 循环条件 循环变量增值 语句如前例 求级数12 22 32 前10项之和 main inti sum 0 for i 1 i 10 i sum sum i i printf d sum 16 2 三个表达式均可缺省 但起分割作用的两个分号不可省略 例如 for 表达式1省略 应在for之前对循环变量赋初值 i 1 for i 10 i sum sum i 17 表达式2省略 则不判断条件 循环无终止进行下去 for i 1 i sum i 表达式3省略 则应另设法保证循环的结束 for sum 0 i 1 i 10 sum sum i i 18 3 表达式1和表达式3可以是逗号表达式 例 inti j sum for i 0 j 100 i j i j sum i j 19 程序 main inti sum 0 for i 1 i 100 i sum sum i printf sum d n sum 程序 main inti sum 0 i 1 for i 100 sum sum i i printf sum d n sum 程序 main inti sum 0 i 1 for if i 100 sum sum i i elsegotoL1 L1 printf sum d n sum 以前面求和例子为例 表达式1 表达式2 表达式3 表达式1 表达式2 表达式3 表达式1 表达式 表达式 结束循环的出口 20 for语句与while语句的等价形式 表达式1while 表达式2 语句表达式3 21 例4 输出100以内所有偶数的和与所有奇数的和 main intI s1 0 s2 0 for i 1 i 100 i if i 2 0 s1 s1 1 elses2 s2 1 printf s1 d s2 d n s1 s2 22 例5 求s 1 1 2 1 3 1 4 1 n n由键盘输入 解题方法 让变量t的初值等于1 然后反复执行语句 则t的值就在1和 1之间交替变化 main inti n doubles t scanf d 23 练习3 下列程序段 选项正确的是 inti k for i 0 k 1 k 1 i k Printf A 判断循环结束的条件非法B 无限循环 C 只循环一次D 一次也不循环 表达式2 k 1 非零 是无限循环 B 24 5 5三种循环语句的比较 for语句和while语句先判断条件 后执行语句 故循环体有可能一次也不执行 而do while语句的循环体至少执行一次 用while和do while循环时循环变量初始化的操作应在while和do while语句之前完成 而for语句可以在表达式1中实现循环变量的初始化 一般是在循环次数已经确定的情况下 习惯用for语句 而对于循环次数不确定只给出循环结束条件的问题 习惯用while语句解决 25 5 6循环的嵌套1 定义 在循环体内又包含一个循环结构 称为循环嵌套 三种循环 while do while for 都可以互相嵌套 例如 以下几种都是合法的嵌套形式 for while for循环体嵌套while循环体 for for for循环体嵌套for循环 26 do do while while do while循环体嵌套do while循环 while do while while循环体嵌套do while循环 while while while循环体嵌套while循环 do for while do while循环体嵌套for循环 27 2 嵌套结构规则 外循环 内循环 交叉循环 外循环入口 内循环出口 内循环出口 外循环出口 28 例6 循环嵌套举例 for i 1 i 2 i for j 1 j 2 j printf 3d i j printf n for i 1 i 2 i for j 1 j 2 j printf 3d i j printf n 对j循环结束 再换行 输出结果 2 3 3 4 输出结果 2 3 3 4 29 例7 求1 2 3 n main inti j n floatsum s scanf d 注意类型定义 30 例8 按规定的格式输出九九乘法表 main inti j for i 1 i 9 i for j 1 j i j printf d i j printf n 31 5 7break和continue语句 1 break语句语法 break 功能 结束包含该语句的最内层循环main intn for n 100 n 200 n if n 3 0 break printf 6d n 2 continue语句语法 continue 功能 结束循环体的本次循环main intn for n 100 n 200 n if n 3 0 continue printf 6d n 100 200之间只要遇到能被3整除的数就结束循环 输出 100 101 本程序将100 200之间不能被3整除的数输出 只能出现在switch和循环语句中 只能出现在循环语句的循环体中 32 练习4 阅读下列程序 输出结果 main inti 0 j 10 k 2 s 0 for i k if i j printf s d s break s j 循环体共执行了多少次 S 50 6次 当条件i j成立时才能执行到break语句 For循环是死循环 注意 break语句只能出现在switch for while或do while语句中 33 练习5 以下程序的输出结果是 main inty 8 for y 0 y if y 3 0 printf d y continue printf end B Continue语句的作用是结束本次循环 A 74B 52C 963D 852 这条语句执行不到 34 3 空语句形式 只由一个分号构成 2 功能什么也不做 可出现在程序中任何语句可以出现的地方 例 求级数12 22 32 前10项之和 main inti sum for sum 0 i 1 i 10 sum i i i printf sum d n sum 例 程序段 gotoL1 L1 35 作业 1 循环第一次 第五章一 二 1 3 5 三 1 4 5四 36 上机作业 1 循环第一次 1 求 2 输出所有被 整除 并能被 整除余 被 整除缺1的两位数 3 编程求100以内 包括100 的偶数之和 4 求1 10的积 37 作业 2 第五章读懂并编写例5 11 5 12 5 18 5 19 5 20 38 上机作业 2 1 第五章五 编程练习 4 2 打印下面图形 每行错位一个 39 补充练习1 下列程序的输出结果是 main

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论