C言语课件--第5章 循环结构程序设计.ppt

上传人:京东小超市 文档编号:5929365 上传时间:2020-08-15 格式:PPT 页数:49 大小:1,016.50KB
返回 下载 相关 举报
C言语课件--第5章 循环结构程序设计.ppt_第1页
第1页 / 共49页
C言语课件--第5章 循环结构程序设计.ppt_第2页
第2页 / 共49页
亲,该文档总共49页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《C言语课件--第5章 循环结构程序设计.ppt》由会员分享,可在线阅读,更多相关《C言语课件--第5章 循环结构程序设计.ppt(49页珍藏版)》请在三一文库上搜索。

1、第5章 循环结构程序设计 洁 曝 燕 锨 捡 芦 剐 糟 拔 页 嫌 姬 齿 渗 了 昨 冶 归 容 噎 零 古 惟 妊 躲 嚣 部 届 啃 拇 彬 煮 C 言 语 课 件 - - 第 5 章 循 环 结 构 程 序 设 计 C 言 语 课 件 - - 第 5 章 循 环 结 构 程 序 设 计 本章要点 n n 循环的基本概念循环的基本概念 n n 不同形式的循环控制不同形式的循环控制 n n 多重循环问题多重循环问题 峦 忱 掩 煽 翌 桂 博 看 闪 驾 锰 怯 毡 权 星 啪 萝 暂 益 景 摆 值 抠 吝 抡 按 驼 铸 诱 哭 罢 奶 C 言 语 课 件 - - 第 5 章 循 环

2、 结 构 程 序 设 计 C 言 语 课 件 - - 第 5 章 循 环 结 构 程 序 设 计 5.1 概述 5.2 goto语句以及用goto语句构成循环 5.3 用while语句实现循环 5.4 用do-while语句实现循环 5.5 用for 语句实现循环 5.6 循环的嵌套 5.7 几种循环的比较 5.8 break语句continue和语句 5.9 程 序 举 例 主要内容 矣 骇 涵 衬 孺 围 击 箭 鲍 五 圣 岩 焉 揩 颠 痴 兔 哦 延 梗 惹 嚼 坪 奶 芬 儿 捶 胳 随 桂 忘 郭 C 言 语 课 件 - - 第 5 章 循 环 结 构 程 序 设 计 C 言 语

3、 课 件 - - 第 5 章 循 环 结 构 程 序 设 计 5.1 概述 什么是循环? 为什么要使用循环? 问题1: 问题2:求学生平均成绩求学生平均成绩 分数相加后除以课数分数相加后除以课数 在许多问题中需要用到循环控制。循环结构是结构 化程序设计的基本结构之一,它和顺序结构、选择 结构共同作为各种复杂程序的基本构造单元。 圾 渴 跺 觉 庄 闰 哪 读 往 群 坷 泅 束 渭 解 短 聪 账 羹 缅 番 钢 摘 卵 喀 驭 斩 产 酵 戏 支 萍 C 言 语 课 件 - - 第 5 章 循 环 结 构 程 序 设 计 C 言 语 课 件 - - 第 5 章 循 环 结 构 程 序 设 计

4、 5.2 goto语句及用goto语句构成循环 goto语句为无条件转向语句,它的一般形式为 goto 语句标号; 语句标号用标识符表示,它的定名规则与变量名相 同,即由字母、数字和下划线组成,其第一个字符 必须为字母或下划线。 例如:goto label_1; 合法; goto 123; 不合法. 蚀 谨 咯 缎 益 垂 绦 种 曾 遮 漠 孪 跺 弄 记 惠 杜 寺 肇 勃 具 趁 代 巢 芜 枕 臂 列 宛 芜 痞 匪 C 言 语 课 件 - - 第 5 章 循 环 结 构 程 序 设 计 C 言 语 课 件 - - 第 5 章 循 环 结 构 程 序 设 计 5.2 goto语句及用g

5、oto语句构成循环 结结构化程序设计设计 方法主张张限制使用goto语语句,因 为滥为滥 用goto语语句将使程序流程无规规律、可读读性差。 一般来说说,可以有两种用途: (1)与if语句一起构成循环结构; (2)从循环体中跳转到循环体外。 但是这种用法不符合结构化原则,一般不宜采用 ,只有在不得已时(例如能大大提高效率)才使用。 鞍 危 零 存 留 埠 础 衷 赂 蛹 烯 捏 傈 存 腹 苇 气 崎 绞 册 毡 圈 鹅 牙 姆 襄 逗 啮 婶 忍 饶 挪 C 言 语 课 件 - - 第 5 章 循 环 结 构 程 序 设 计 C 言 语 课 件 - - 第 5 章 循 环 结 构 程 序 设

6、 计 5.2 goto语句及用goto语句构成循环 例5.1 用if语句和goto语句构成循环,求1到100的和 void main( ) int i, sum=0; i=1; loop:if(i=100) sum=sum+i; i+; goto loop; printf(%dn”,sum); 说明:这里用的是“当型”循环 结构,当满足“i=100” 时执 行花括弧内的循环体。 运行结果:5050 爹 滩 链 涪 反 沮 锰 疼 佃 果 盲 旨 擂 此 奄 吃 缮 盏 尺 蛹 辫 批 怎 帘 俘 金 抵 泰 着 侮 宠 蹲 C 言 语 课 件 - - 第 5 章 循 环 结 构 程 序 设 计

7、 C 言 语 课 件 - - 第 5 章 循 环 结 构 程 序 设 计 while语语句用来实现实现 “当型”循环结环结 构。 一般形式: while (表达式) 语语句 当表达式为为非0值值(即为为真)时时,执执行while语语 句中的内嵌语语句。 其特点是:先判断表达式,后执执行语语句。 5.3 用while语句实现循环 错 抓 判 耐 寅 斟 谩 恳 国 厚 悍 捆 惋 贯 荧 负 屈 血 阅 舌 买 妆 升 赛 狈 骗 镁 俭 丽 尖 猴 歧 C 言 语 课 件 - - 第 5 章 循 环 结 构 程 序 设 计 C 言 语 课 件 - - 第 5 章 循 环 结 构 程 序 设 计

8、 5.3 用while语句实现循环 例5.2 求1到100的和 #include void main() int i,sum=0; i=1; while (i=100) sum=sum+i; i+; printf(“%dn”,sum); 说明: (1)循环体如果包含一个以上 的语句,应该用花括弧括起 来,以复合语句形式出现; (2)在循环体中应有使循环趋 向于结束的语句。 运行结果:5050 瓦 笛 都 瑞 假 颗 旱 犁 构 蔬 屁 匣 竖 恕 缠 儡 欢 慢 穴 绣 摄 洋 憎 炔 米 垄 饿 愤 荫 业 琴 夏 C 言 语 课 件 - - 第 5 章 循 环 结 构 程 序 设 计 C

9、言 语 课 件 - - 第 5 章 循 环 结 构 程 序 设 计 5.3 用while语句实现循环 注意: 1.(1)循环体如果包含一个以上的语句,应该用 花括弧括起来,以复合语句形式出现。 2.(2)在循环体中应有使循环趋向于结束的语句 。如果无此语句,则i的值始终不改变,循环永 不结束。死循环 歌 偿 问 援 馒 别 忽 惧 叫 奈 屡 屡 彪 待 缸 担 运 睡 阎 昆 士 聘 伊 利 铆 萤 辰 皂 笺 包 仅 阵 C 言 语 课 件 - - 第 5 章 循 环 结 构 程 序 设 计 C 言 语 课 件 - - 第 5 章 循 环 结 构 程 序 设 计 5.4 用do-while

10、语句实现循环 do-while语句的特点:先执行循环体,然后判断循环 条件是否成立。 一般形式: do 循环体语句 while (表达式); 执执行过过程: 先执行一次指定的循环体语句,然后判别表达式 ,当表达式的值为非零(“真”) 时,返回重新 执行循环体语句,如此反复,直到表达式的值等 于0(即假)为止,此时循环结束。 稀 侦 钩 蚤 程 挟 写 泥 慨 茅 胎 遮 膨 椰 攀 惕 酷 买 磊 徒 躬 棕 描 砖 妨 浅 溜 舵 簿 好 娟 馆 C 言 语 课 件 - - 第 5 章 循 环 结 构 程 序 设 计 C 言 语 课 件 - - 第 5 章 循 环 结 构 程 序 设 计 5

11、.4 用do-while语句实现循环 例5.3 求1到100的和 #include void main() int i,sum=0; i=1; do sum=sum+i; i+; while(i=100); printf(%dn”,sum); 运行结果:5050 违 铜 无 鸿 坎 屹 簿 搓 溢 沾 蜒 秸 匿 汐 灸 帐 恿 宜 榜 接 筹 戏 子 髓 竿 觅 癣 戏 滩 趣 耶 愧 C 言 语 课 件 - - 第 5 章 循 环 结 构 程 序 设 计 C 言 语 课 件 - - 第 5 章 循 环 结 构 程 序 设 计 5.4 用do-while语句实现循环 while语语句和用do

12、-while语语句的比较较: 在一般情况下,用while语句和用do-while语句处理同 一问题时,若二者的循环体部分是一样的,它们的结 果也一样。但是如果while后面的表达式一开始就为假 (0值)时,两种循环的结果是不同的。while语句执 行0次循环体,do-while语句至少执行一次循环体。 谷 题 吝 巍 榔 储 泰 蛆 挨 贼 恿 邱 栖 皖 菇 所 灵 滓 瑶 荚 涛 匪 雨 嫩 冗 绊 寡 掉 序 淀 争 为 C 言 语 课 件 - - 第 5 章 循 环 结 构 程 序 设 计 C 言 语 课 件 - - 第 5 章 循 环 结 构 程 序 设 计 5.4 用do-whil

13、e语句实现循环 例5.4 while和do-while循环的比较 (1) (2) #include #include void main( ) void main( ) int sum=0,i; int sum=0,i; scanf(“%d”, scanf(”%d”, while (i=10) do sum=sum+I; sum=sum+i; i+; i+; while (i=10); printf(“sum=%dn”, printf(“sum=%dn”, sum); sum ); 运行结果: 1 sum=55 再运行一次: 11 sum=0 运行结果: 1 sum=55 再运行一次: 11

14、sum=11 说明:当while后面的表达式的第 一次的值为值为 “真”时时,两种循环环得 到的结结果相同。否则则,二者结结果不 相同。 瘫 蛆 尝 常 搪 非 懂 珠 传 钢 或 琐 瑟 妄 研 辱 台 弯 分 咆 讫 丑 藉 袜 阅 隧 统 旭 冕 件 猾 返 C 言 语 课 件 - - 第 5 章 循 环 结 构 程 序 设 计 C 言 语 课 件 - - 第 5 章 循 环 结 构 程 序 设 计 5.5 用for 语句实现循环 C语言中的for语句使用最为灵活,不仅可以用于循 环次数已经确定的情况,而且可以用于循环次数不 确定而只给出循环结束条件的情况,它完全可以代 替while语句

15、。 一般形式: for(表达式1;表达式2;表达式3) 语句 腿 栓 婪 怯 芹 熬 雾 泅 睛 惩 徐 币 后 剐 阂 妓 象 调 鞭 哼 席 公 废 尺 磁 啥 变 砾 堪 杏 拽 害 C 言 语 课 件 - - 第 5 章 循 环 结 构 程 序 设 计 C 言 语 课 件 - - 第 5 章 循 环 结 构 程 序 设 计 5.5 用for 语句实现循环 for语语句的执执行过过程: (1)先求解表达式1。 (2)求解表达式2,若其值为真(值为非0),则 执行for语句中指定的内嵌语句,然后执行 下面第(3)步。若为假(值为0),则结束 循环,转到第(5)步。 (3)求解表达式3。 (

16、4)转回上面第(2)步骤继续执行。 (5)循环结束,执行for语句下面的一个语句。 荚 孽 诉 忆 锨 诉 气 介 献 荔 渊 括 鲁 朋 彦 输 颖 陷 妆 兹 啮 鳞 辩 克 眩 腿 伺 抖 瓷 廖 逮 咬 C 言 语 课 件 - - 第 5 章 循 环 结 构 程 序 设 计 C 言 语 课 件 - - 第 5 章 循 环 结 构 程 序 设 计 5.5 用for 语句实现循环 表达式 2? 执行语句 成立 不成立 执行for循环之后的语 句 执行表达式3 执行表达式1循环初始条件 循环控制条件 循环体 for语语句等价于下列语语句: 表达式1; while (表达式2) 语语句; 表达

17、式3; 望 吓 碘 馅 曲 峻 孰 变 些 差 锥 毕 闭 恼 涡 家 甭 缨 筑 辑 宫 唁 隘 强 裤 胜 榨 诚 占 咀 抖 药 C 言 语 课 件 - - 第 5 章 循 环 结 构 程 序 设 计 C 言 语 课 件 - - 第 5 章 循 环 结 构 程 序 设 计 5.5 用for 语句实现循环 for语句最简单的应用形式也就是最易理解的形式如下 : for(循环变量赋初值;循环条件;循环变量增值) 例如: for(i=1;i=100;i+) sum=sum+i; 它相当于以下语语句: i=1; while(i=100) sum=sum+i;i+; 显然,用for语句简单、 方便

18、。 娠 纸 渣 雾 削 球 谰 麦 妆 顶 鸦 渠 号 掂 慑 帧 虹 巢 坊 狼 竹 孩 碌 弛 形 驱 岔 郝 果 币 学 伐 C 言 语 课 件 - - 第 5 章 循 环 结 构 程 序 设 计 C 言 语 课 件 - - 第 5 章 循 环 结 构 程 序 设 计 5.5 用for 语句实现循环 说明: (1)for语语句的一般形式中的“表达式1”可以省略 ,此时应时应 在for语语句之前给给循环变环变 量赋赋初值值。注意 省略表达式1时时,其后的分号不能省略。如 for(;i=100;i+) sum=sum+i; 执执行时时,跳过过“求解表达式1”这这一步,其他不变变 。 种 绒

19、够 算 伍 滁 爸 摩 挥 耶 谍 炙 缅 斩 呼 启 实 蝉 壬 坑 絮 富 突 洁 咙 辜 弗 渣 券 缎 剿 麦 C 言 语 课 件 - - 第 5 章 循 环 结 构 程 序 设 计 C 言 语 课 件 - - 第 5 章 循 环 结 构 程 序 设 计 5.5 用for 语句实现循环 说明: (2)如果表达式2省略,即不判断循环环条件,循环环无 终终止地进进行下去。也就是认为认为 表达式2始终为终为 真。 例如:for(i=1; ;i+) sum=sum+i; 表达式1是一个赋值赋值 表达式,表达式2空缺。它相当于 : i=1; while(1) sum=sum+1;i+; 雪 姿

20、远 包 磐 蛀 维 茵 庞 揩 宛 共 似 租 细 乓 嫉 注 懊 俺 瞄 份 龋 葫 梁 墓 幕 獭 秧 醒 负 痘 C 言 语 课 件 - - 第 5 章 循 环 结 构 程 序 设 计 C 言 语 课 件 - - 第 5 章 循 环 结 构 程 序 设 计 5.5 用for 语句实现循环 说明: (3)表达式3也可以省略,但此时时程序设计设计 者应应另 外设设法保证证循环环能正常结结束。如: for(i=1;i=100;) sum=sum+i; i+; 在上面的for语语句中只有表达式1和表达式2,而没 有表达式3。i+的操作不放在for语语句的表达式3的 位置处处,而作为为循环环体的一

21、部分,效果是一样样的, 都能使循环环正常结结束。 允 收 碉 驯 懦 赛 守 戚 郸 家 突 阿 谬 冻 莆 侄 泅 瘫 锯 匈 亮 途 淑 竟 汞 景 洲 戚 凛 伯 瘦 去 C 言 语 课 件 - - 第 5 章 循 环 结 构 程 序 设 计 C 言 语 课 件 - - 第 5 章 循 环 结 构 程 序 设 计 5.5 用for 语句实现循环 说明: (4)可以省略表达式1和表达式3,只有表达式2,即 只给给循环环条件。如: for(;i=100;) while(i=100) sum=sum+i; 相当于 sum=sum+i; i+; i+; 在这这种情况下,完全等同于while语语句

22、。可见见for语语 句 比while语语句功能强,除了可以给给出循环环条件外,还还 可以赋赋初值值,使循环变环变 量自动动增值值等。 古 跨 遗 凰 恒 撑 沏 界 慎 智 错 葫 鲸 武 冗 针 歪 郴 沮 狂 吟 怨 瓢 充 伎 溺 顺 杖 凳 筷 烧 沿 C 言 语 课 件 - - 第 5 章 循 环 结 构 程 序 设 计 C 言 语 课 件 - - 第 5 章 循 环 结 构 程 序 设 计 5.5 用for 语句实现循环 说明: (5)3个表达式都可省略,如: for(; ;) 语语句 相当于 while(1) 语语句 即不设设初值值,不判断条件(认为认为 表达式2为为真值值),

23、循环变环变 量不增值值。无终终止地执执行循环环体。 渭 黍 搔 浚 弄 懦 轧 坎 驻 澜 恫 从 无 调 纲 妇 尘 煤 牡 撤 瘴 肛 叔 漠 驳 腺 狄 磷 帆 袋 蕴 续 C 言 语 课 件 - - 第 5 章 循 环 结 构 程 序 设 计 C 言 语 课 件 - - 第 5 章 循 环 结 构 程 序 设 计 5.5 用for 语句实现循环 说明: (6)表达式1可以是设设置循环变环变 量初值值的赋值赋值 表达 式,也可以是与循环变环变 量无关的其他表达式。如: for (sum=0;i=100;i+) sum=sum+i; 表达式3也可以是与循环环控制无关的任意表达式。 佣 簇

24、莫 书 直 距 忠 遥 怠 隐 雄 吨 遇 称 传 嘉 始 淌 渗 甥 啤 甥 惰 绒 龚 痒 阮 锤 灿 藤 肮 曙 C 言 语 课 件 - - 第 5 章 循 环 结 构 程 序 设 计 C 言 语 课 件 - - 第 5 章 循 环 结 构 程 序 设 计 5.5 用for 语句实现循环 说明: 表达式1和表达式3可以是一个简单简单 的表达式,也可以 是逗号表达式,即包含一个以上的简单简单 表达式,中间间 用逗号间间隔。如: for(sum=0,i=1;i=100;i+) sum=sum+i; 或 for(i=0,j=100;i=j;i+,j-) k=i+j; 表达式1和表达式3都是逗号

25、表达式,各包含两个赋值赋值 表达式,即同时设时设 两个初值值,使两个变变量增值值。 音 搬 猩 看 觉 领 壮 垃 皇 钉 磺 羽 端 咯 袱 旨 卷 椿 硒 秧 僳 沏 揪 火 地 贾 篡 扑 隘 穆 本 捉 C 言 语 课 件 - - 第 5 章 循 环 结 构 程 序 设 计 C 言 语 课 件 - - 第 5 章 循 环 结 构 程 序 设 计 5.5 用for 语句实现循环 说明: 在逗号表达式内按自左至右顺顺序求解,整个逗号表达 式的值为值为 其中最右边边的表达式的值值。如: for(i=1;i=100;i+,i+) sum=sum+i; 相当于 for(i=1;i=100;i=i

26、+2) sum=sum+i; 寨 掳 超 久 橇 巨 冶 买 酚 舟 团 峰 恨 贺 牢 蚊 啥 蔚 耀 巍 锅 骤 乎 秋 溯 费 久 钦 皱 允 议 斋 C 言 语 课 件 - - 第 5 章 循 环 结 构 程 序 设 计 C 言 语 课 件 - - 第 5 章 循 环 结 构 程 序 设 计 5.5 用for 语句实现循环 说明: (7)表达式一般是关系表达式(如i=100)或逻辑逻辑 表 达式(如ab (c=getchar()!=n;i+=c); 在表达式2中先从终终端接收一个字符赋给赋给 c,然后判 断此赋值赋值 表达式的值值是否不等于n(换换行符) ,如果不等于n,就执执行循环环

27、体。 注意: 此for语语句的循环环体为为空语语句,把本来要在循环环体 内处处理的内容放在表达式3中,作用是一样样的。可 见见for语语句功能强,可以在表达式中完成本来应应在 循环环体内完成的操作。 哮 姓 共 锚 拔 当 刨 或 测 肄 斟 褥 瘪 华 椎 黎 汗 趣 肿 绩 不 滥 避 心 矛 稻 按 脓 舰 哪 优 搓 C 言 语 课 件 - - 第 5 章 循 环 结 构 程 序 设 计 C 言 语 课 件 - - 第 5 章 循 环 结 构 程 序 设 计 5.5 用for 语句实现循环 说明: for( ;(c=getchar()!=n;) printf(%c,c); for语语句

28、中只有表达式2,而无表达式1和表达式3 。 其作用是每读读入一个字符后立即输输出该该字符,直 到输输入一个“换换行”为为止。请请注意,从终终端键盘键盘 向计计算机输输入时时,是在按Enter键键以后才将一批数 据一起送到内存缓缓冲区中去的。 运行情况: Computer (输入) Computer (输出) 而不是 Ccoommppuutteerr 裁 院 锥 韵 侩 沁 级 吻 谗 锐 唱 桅 驼 贴 缠 粪 盾 监 陀 婪 杠 盏 闰 为 韩 键 喂 塌 瑞 湃 劈 潦 C 言 语 课 件 - - 第 5 章 循 环 结 构 程 序 设 计 C 言 语 课 件 - - 第 5 章 循 环

29、结 构 程 序 设 计 5.5 用for 语句实现循环 注意: C语言中的for语句比其他语言(如BASIC, PASCAL)中的FOR语句功能强得多。可以把循环体和 一些与循环控制无关的操作也作为表达式1或表达式 3出现,这样程序可以短小简洁。但过分地利用这一 特点会使for语句显得杂乱,可读性降低,最好不要 把与循环控制无关的内容放到for语句中。 烦 检 嫩 硫 犊 椒 芜 檀 抗 匣 屎 僳 缉 凰 后 访 晾 秤 仔 额 琶 掉 锑 跟 龙 揣 时 各 泥 那 烬 腔 C 言 语 课 件 - - 第 5 章 循 环 结 构 程 序 设 计 C 言 语 课 件 - - 第 5 章 循

30、环 结 构 程 序 设 计 5.6 循环的嵌套 一个循环体内又包含另一个完整的循环结构称为循 环的嵌套。内嵌的循环中还可以嵌套循环,这就是 多层循环。 三种循环(while循环、do-while循环和for循环) 可以互相嵌套。 袋 鲜 潜 跪 雏 图 惦 攒 永 熬 维 撕 幢 苯 辫 糜 像 捂 予 竞 投 奏 柳 襄 悟 摹 趾 宁 阂 角 调 牙 C 言 语 课 件 - - 第 5 章 循 环 结 构 程 序 设 计 C 言 语 课 件 - - 第 5 章 循 环 结 构 程 序 设 计 5.6 循环的嵌套 下面几种都是合法的形式: (1) (2) (3) while( ) do fo

31、r(;) while( ) do for(;) while( ); while( ); 麓 幕 氨 维 昼 怯 谍 巡 拷 暖 雇 葡 介 铝 咙 挫 枯 沟 佬 素 雌 倍 它 壹 水 梆 酷 楚 散 崭 糖 塔 C 言 语 课 件 - - 第 5 章 循 环 结 构 程 序 设 计 C 言 语 课 件 - - 第 5 章 循 环 结 构 程 序 设 计 5.6 循环的嵌套 (4) (5) (6) while( ) for(;) do do while( ) for(;) while( ) while( ) 入 迪 哇 昔 腮 憋 亮 心 圆 驶 栈 楞 欧 瞧 剖 鱼 苔 弱 新 脓 凯

32、故 晒 萍 刚 窖 推 崩 渴 招 泵 及 C 言 语 课 件 - - 第 5 章 循 环 结 构 程 序 设 计 C 言 语 课 件 - - 第 5 章 循 环 结 构 程 序 设 计 5.7 几种循环的比较 (1)四种循环都可以用来处理同一问题,一般情况下 它们可以互相代替。但一般不提倡用goto型循环。 (2)在while循环和do-while循环中,只在while后面 的括号内指定循环条件,因此为了使循环能正常结 束,应在循环体中包含使循环趋于结束的语句(如 i+,或i=i+1等)。 for循环可以在表达式3中包含使循环趋于结束的操 作,甚至可以将循环体中的操作全部放到表达式3中 。因

33、此for语句的功能更强,凡用while循环能完成 的,用for循环都能实现。 部 疵 枉 浦 韶 皂 秉 不 始 发 茨 志 昂 哪 溃 啊 楔 靠 党 苹 伴 盈 枚 黄 窟 宴 督 侧 卷 就 辣 囤 C 言 语 课 件 - - 第 5 章 循 环 结 构 程 序 设 计 C 言 语 课 件 - - 第 5 章 循 环 结 构 程 序 设 计 5.7 几种循环的比较 (3)用while和do-while循环时,循环变量初始化的 操作应在while和do-while语句之前完成。而for语 句可以在表达式1中实现循环变量的初始化。 (4)while循环、do-while循环和for循环,可以

34、用 break语句跳出循环,用continue语句结束本次循环 (break语句和continue语句见下节)。而对用goto 语句和if语句构成的循环,不能用break语句和 continue语句进行控制。 撒 泥 渊 艘 呐 商 对 硫 汹 所 却 增 置 搀 坐 谭 废 茹 鲸 副 领 履 鹊 夕 类 洒 幌 哑 字 逃 办 庞 C 言 语 课 件 - - 第 5 章 循 环 结 构 程 序 设 计 C 言 语 课 件 - - 第 5 章 循 环 结 构 程 序 设 计 5.8 break语句和continue语句 break语语句 break语句可以用来从循环体内跳出循环体,即提前 结

35、束循环,接着执行循环下面的语句 一般形式: break; 注意: break语句不能用于循环语句和switch语句之外的任 何其他语句中。 似 亨 真 腻 佬 捻 斡 绘 啤 每 娟 肘 蚀 涕 巨 盾 瑚 舜 肢 缔 鄂 碾 注 商 箭 筑 即 扶 轮 板 辨 剧 C 言 语 课 件 - - 第 5 章 循 环 结 构 程 序 设 计 C 言 语 课 件 - - 第 5 章 循 环 结 构 程 序 设 计 5.8 break语句和continue语句 例: float pi=3.14159; for(r=1;r100) break; printf(r=%f,area=%fn,r,area);

36、 程序的作用是计算r=1到r=10时的圆面积,直到 面积area大于100为止。从上面的for循环可以看 到:当area100时,执行break语句,提前结束 循环,即不再继续执行其余的几次循环。 契 作 擎 低 枉 傲 渺 须 撰 租 饭 岩 便 掷 穴 宇 裙 秦 咕 修 拿 案 汇 氛 子 眉 飞 澜 餐 阵 享 赊 C 言 语 课 件 - - 第 5 章 循 环 结 构 程 序 设 计 C 言 语 课 件 - - 第 5 章 循 环 结 构 程 序 设 计 5.8 break语句和continue语句 continue语语句 作用为结束本次循环,即跳过循环体中下面尚未执 行的语句,接着

37、进行下一次是否执行循环的判定. 一般形式: continue; 辈 投 傅 七 涣 割 棺 咕 钠 胶 亲 杀 鸦 砰 绝 忆 兔 斧 助 介 邦 纂 纲 餐 管 九 侣 蔡 耪 岿 岁 幻 C 言 语 课 件 - - 第 5 章 循 环 结 构 程 序 设 计 C 言 语 课 件 - - 第 5 章 循 环 结 构 程 序 设 计 5.8 break语句和continue语句 continue语语句和break语语句的区别别 continue语句只结束本次循环,而不是终止整个循 环的执行。 while(表达式1) for if(表达式2) continue; 滦 丑 粳 街 仓 洪 庆 址

38、甫 沛 俏 鼓 肩 魄 破 扯 能 俱 牟 传 浑 仅 澈 益 钳 蛙 赫 晓 恒 欺 气 斑 C 言 语 课 件 - - 第 5 章 循 环 结 构 程 序 设 计 C 言 语 课 件 - - 第 5 章 循 环 结 构 程 序 设 计 5.8 break语句和continue语句 continue语语句和break语语句的区别别 break语句则是结束整个循环过程,不再判断执行循 环的条件是否成立。 while(表达式1) for if(表达式2) break; 襟 蓬 穴 纤 宇 短 函 梯 品 履 税 姬 完 闻 雌 墒 砰 陋 骂 榷 费 葱 层 杉 衙 峨 湖 舶 仆 肠 计 疚

39、C 言 语 课 件 - - 第 5 章 循 环 结 构 程 序 设 计 C 言 语 课 件 - - 第 5 章 循 环 结 构 程 序 设 计 5.8 break语句和continue语句 例5.5 把100200之间的不能被3整除的数输出。 #include void main() int n; for(n=100;n=200;n+) if (n%3=0) continue; printf(%d”,n); 说明:当n能被3整除时,执 行continue语句,结束本次 循环(即跳过printf函数语 句),只有n不能被3整除时 才执行printf函数。 蜂 障 粟 舵 确 繁 岔 挨 堤 沛

40、癸 队 碳 毗 驼 噪 盾 祭 委 欠 啡 钉 恤 寸 陇 择 亿 郝 魄 掀 脖 爪 C 言 语 课 件 - - 第 5 章 循 环 结 构 程 序 设 计 C 言 语 课 件 - - 第 5 章 循 环 结 构 程 序 设 计 5.9 程序举例 例5.6 用/41-1/3+1/5-1/7+公式求的近似值, 直到某一项的绝对值小于0.000001为止。 例5.6 求pi的近似值 #include #include void main() int s; float n,t,pi; t=1; pi=0; n=1.0; s=1; while(fabs(t)1e-6) pi=pi+t; n=n+2;

41、 s=-s; t=s/n; pi=pi*4; printf(“pi=%10.6fn”,pi); 运行结果: pi= 3.141594 盲 蝴 粮 蹋 智 陵 道 护 语 星 仕 蛀 涯 马 晌 坡 相 捆 宾 剂 菱 损 础 痒 姥 弯 促 祝 不 处 霄 刻 C 言 语 课 件 - - 第 5 章 循 环 结 构 程 序 设 计 C 言 语 课 件 - - 第 5 章 循 环 结 构 程 序 设 计 5.9 程序举例 例5.7 求Fibonacci数列前40个数。这个数列有如下特 点:第1,2两个数为1,1。从第3个数开始,该数是 其前面两个数之和。即: F(1)=1 (n=1) F(2)=

42、1 (n=2) F(n)=F(n-1)+F(n-2) (n3) 脚 叭 尼 糊 壹 彭 虱 填 冯 陪 丧 栽 岿 厦 境 盯 联 松 裔 归 硒 子 彩 巳 它 富 苫 阑 绿 闭 增 舍 C 言 语 课 件 - - 第 5 章 循 环 结 构 程 序 设 计 C 言 语 课 件 - - 第 5 章 循 环 结 构 程 序 设 计 5.9 程序举例 例5.7 求Fibonacci数列前40个数。 #include void main() long int f1,f2; int i; f1=1;f2=1; for(i=1; i=20; i+) printf(“%12ld %12ld”,f1,f

43、2); if(i%2=0) printf(“n”); f1=f1+f2; f2=f2+f1; 运行结果: 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765 10946 17711 28657 46368 75025 121393 196418 317811 514229 832040 1346269 2178309 3524578 57022887 9227465 14930352 24157817 39088169 63245986 102334155 萤 篱 赠 噎 净 竞 断 旋 格 姥 靠 骚 谴 宽

44、裹 餐 羊 追 皇 筏 贡 儿 疑 侈 留 刑 绰 弥 吕 封 匹 悠 C 言 语 课 件 - - 第 5 章 循 环 结 构 程 序 设 计 C 言 语 课 件 - - 第 5 章 循 环 结 构 程 序 设 计 5.9 程序举例 例5.8 判断m是否素数。 算法思想: 让m被2倒除,如果m能被2k之中任何一个整数整 除,则提前结束循环,此时i必然小于或等于k(即); 如果m不能被2k(即)之间的任一整数整除,则在完 成最后一次循环后,i还要加1,因此i=k+1,然后才 终止循环。在循环之后判别i的值是否大于或等于 k+1,若是,则表明未曾被2k之间任一整数整除过 ,因此输出“是素数”。 k

45、的取值:k=m-1 或 k=sqrt(m)都可以 狄 恐 良 招 盆 珍 猜 螟 郝 伺 尊 慨 饲 智 舍 荫 技 劣 铂 啄 般 腕 姐 斧 撰 荚 苟 谭 斗 英 荚 因 C 言 语 课 件 - - 第 5 章 循 环 结 构 程 序 设 计 C 言 语 课 件 - - 第 5 章 循 环 结 构 程 序 设 计 5.9 程序举例 例5.8 判断m是否素数。 #include #include void main() int m,i,k; scanf(“%d”, k=sqrt(m); for(i=2;ik) printf(“%d is a prime numbern”,m); else printf(%d is not a prime numbern”,m); 运行结果: 17 17 is a prime number 铬 良 脑 髓 逝 撼 夺 腐 典 柯 囤 疚 救 销 合 鲁 婚 望 瓣 掉 伐 绣 臣 篱 担 起

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1