




已阅读5页,还剩30页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第6章循环结构程序设计 followme 6 1概述循环结构是程序中一种很重要的结构 其特点是 在给定条件成立时 反复执行某程序段 直到条件不成立为止 给定的条件称为循环条件 反复执行的程序段称为循环体 语言提供了多种循环语句 可以组成各种不同形式的循环结构 1 goto语句与if语句构成的循环2 while循环3 do while循环4 for循环 6 2goto语句和goto if循环 1 goto语句 无条件转向语句 格式 goto语句标号 例 gotolabel1 说明 1 goto语句使程序的执行方向转到语句标号所在的语句 2 语句标号的命名规则同变量2 goto语句的用途 1 与if构成循环 2 从循环体内跳出 注意 使用goto语句跳转不符合结构化的编程思想 应尽量限制使用 includevoidmain intx scanf d 求和的一般方法 设置存放和的变量sum 初始置0 输入要加的数x sum sum x 是否继续 是 转 否 转 打印sum求积的一般方法 设置存放和的变量sum 初始置1 输入要加的数x sum sum x 是否继续 是 转 否 转 打印sum 例 用if和goto求 includevoidmain inti sum 0 i 1 loop if i 100 sum sum i i gotoloop printf n d n sum 1 语法 while 表达式 循环体语句2 执行过程 计算表达式的值 当值为真 非0 时 执行循环体语句 也叫前测试循环或当型循环 6 3while语句 3 注意 1 如果循环体中有多个语句 一定要用花括号括起 否则循环只到第一个分号处 即到while后面的第一个语句 2 循环体中的语句必须能够使条件表达式由 真 变 假 否则循环为死循环 3 允许while语句的循环体又是while语句 从而形成双重循环 练习 选择下列程序的运行结果 includemain intn 4 while n printf d n a 20b 31c 321d 210 includevoidmain inti sum 0 i 1 while i 100 sum i i printf n d sum 如果求100 呢 如果求n 呢 求任意个数的和 计算1 100之间数的累加和 循环条件 内复合语句构成循环体 求n includevoidmain inti 1 n sum 1 scanf d 求任意个数的和 includevoidmain inti sum 0 n x i 1 scanf d 求1 100内能被5整除的整数的个数 includevoidmain inti count 0 i 1 while i 100 if i 5 0 count 1 i printf n d count 1 语法 do 循环体语句 while 表达式 2 执行过程 先执行循环体语句一次 再判别表达式的值 若为真 非0 则继续循环 否则终止循环 也叫后测试循环或直到型循环 表达式 语句 真 假 6 4do while语句 3 注意 1 在if语句 while语句中 表达式后面都不能加分号 而在do while语句的表达式后面则必须加分号 2 do while语句也可以组成多重循环 而且也可以和while语句相互嵌套 3 在do和while之间的循环体由多个语句组成时 必须用 括起来组成一个复合语句 4 do while和while语句相互替换时 但要注意修改循环控制条件 求1 100的整数和main inti 1 sum 0 while i 100 sum i i printf d n sum main inti 1 sum 0 do sum i i while i 100 printf d n sum 无论条件满足否 都先执行一次循环体 2 执行过程 1 计算表达式1的值 2 计算表达式2的值 若值为真 非0 则执行循环体一次 否则跳出循环 3 计算表达式3的值 转回第2步重复执行 在整个for循环过程中 表达式1只计算一次 表达式2和表达式3则可能计算多次 循环体可能多次执行 也可能一次都不执行 6 5for语句 1 语法 for 表达式1 表达式2 表达式3 语句 说明 1 最简单的应用形式 for 循环变量赋初值 循环条件 循环变量增值 例如 for i 1 i 10 i sum sum i 2 三个表达式均可缺省 但起分割作用的两个分号不可省略 例如 for i 1 for i 10 i sum sum i 或for i 1 i 10 sum sum i i 表达式1省略 应在for之前对循环变量赋初值表达式2省略 则不判断条件 循环无终止进行下去表达式3省略 则应另设法保证循环的结束 3 表达式1和表达式3可为逗号表达式例如 for i 1 j 10 i j i j k i j 执行结果见6 1 c 练习 阅读程序 选择正确答案 includemain inti for i 4 i 10 i if i 3 0 continue printf d i a 45b 457810c 69d 678910 练习 阅读程序 选择正确答案 includemain inti 0 j 0 k 0 m 4 for m 0 m 4 m switch m case0 i m case1 j m case2 k m case3 m printf n d d d d i j k m a 0 0 2 4b 0 1 2 3c 0 1 2 4d 0 1 2 5 例题1 求和s 1 1 2 1 3 1 4 1 n n由键盘输入 这个级数的各项正负不相同 解题方法 让变量t的初值等于1 然后反复执行语句t t 则t的值就在1和 1之间交替变化 main inti doubles t scanf d 6 6循环的嵌套一个循环体内又包含另一个完整的循环结构 叫循环的嵌套 不同语句构成的循环也可以相互嵌套 1 while while 2 for while for语句的循环体还可为另一个循环语句例如 for i 1 i 2 i for j 1 j 2 j printf 3d i j printf n output 2334 for i 1 i 2 i for j 1 j 2 j printf 3d i j printf n output 2334 6 7几种循环的比较1 不提倡使用goto循环 2 for循环比while do while循环功能更强 3 while do while语句中 循环变量初始化应在循环语句之前完成 for循环可以在其中完成 4 while do while和for循环 可以用break语句跳出循环 用continue语句结束本次循环 而goto和if构成的循环不能 6 8break语句和continue语句break语句 强制结束循环 转向循环语句下面的语句 break可以跳出switch结构 break语句还可以跳出最近的一层循环 for r 1 r100 break printf f area 注意 break语句不能用于循环语句和switch语句以外的任何其它语句 continue语句对于for循环 跳过循环体其余语句 转向循环变量增量表达式的计算 对于while和do while循环 跳过循环体其余语句 转向循环继续条件的判定语句 continue语句和break语句的区别 continue只结束本次循环 而不是终止整个循环 break是结束本层循环 不再进行条件判断 while 表达式1 if 表达式2 break while 表达式1 if 表达式2 continue 例1 公式求pi的近似值 直到最后一项的绝对值小于10 6为止 include includevoidmain ints floatn t pi t 1 pi 0 n 1 0 s 1 while fabs t 1e 6 pi pi t n n 2 s s t s n pi pi 4 printf pi 10 6f n pi 6 9程序举例 例2 求fibonacci数列的前40个数 即f1 1 n 1 f2 1 n 2 fn fn 1 fn 2 n 3 includevoidmain longintf1 f2 inti f1 1 f2 1 for i 1 i 20 i printf 12ld 12ld f1 f2 if i 2 0 printf n f1 f1 f2 f2 f2 f1 说明 1 i每取一个值打两个数 2 20 40 2 每打两个数换行 例3 译码 字母转换为其后第4个字母 非字母不变 includevoidmain charc while c getchar n if c a 按回车停止译码 如果是后四个字母 例4 求100 200之间全部素数 判断m是否素数的规则是 m不能被2到根号2之间所有整数整除 include includemain intm k i n 0 for m 101 m 200 m m 2 k sqrt m for i 2 i k 1 printf d m n n 1 if n 10 0 printf n printf n 例5 求10个数中的最大数 includevoidmain inti 1 x max scanf d 输入第一个数 第一个数送max 依次输入第二到第10个数 每输入一个数 与max比较 使max中始终存放大的数 例6 1 打印图形 矩形 includevoidmain inti j for i 1 i 4 i for j 1 j 10 j printf printf n 打几行 每行打几列 打完一行换行 i 1234 j 12345678910 例6 2 打印图形 平行四边形 includevoidmain inti j k for i 1 i 4 i for k 1 k i k printf for j 1 j 10 j printf printf n 打几行 每行打几列 打完一行换行 每行前空多少 例6 3 打印图形 三角形 includevoidmain inti j k for i 0 i 3 i
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 商业设计师在项目中的协同工作技巧试题及答案
- 2024年美术设计的趋势研究国际商业美术设计师考试试题及答案
- 2024年广告设计师设计与文化融合试题及答案
- 信息奥赛选拔试题及答案
- 劳动法解析试题及答案
- 无锡中考英语试题及答案
- 焊工工考试试题及答案
- 反恐培训考试题及答案
- 检验过程中常见错误识别试题及答案
- 2024年纺织品检验员证书考试的心态调整 试题及答案
- 名家班主任培训:AI赋能与德育创新
- 湖北省武汉市2025届高中毕业生四月调研考试物理试题及答案(武汉四调)
- 珠宝并购策略优化-全面剖析
- 平面向量及其应用 章末题型归纳总结(基础篇)(10大题型)原卷版-2024-2025学年高一数学(人教A版必修第二册)
- 人教PEP版英语五年级下册 Unit 4 单元练习卷
- 运动营养学知到课后答案智慧树章节测试答案2025年春黑龙江冰雪体育职业学院
- AI时代职业院校财会类专业课程教学改革探讨
- 金氏五行升降中医方集
- 煤矿防洪专项应急预案
- 中华民族节日文化知到课后答案智慧树章节测试答案2025年春云南大学
- 回收设施布局与优化-深度研究
评论
0/150
提交评论