清华大学c语言程序设计 l5_循环结构程序设计

上传人:kms****20 文档编号:46621404 上传时间:2018-06-27 格式:PDF 页数:37 大小:7.41MB
返回 下载 相关 举报
清华大学c语言程序设计 l5_循环结构程序设计_第1页
第1页 / 共37页
清华大学c语言程序设计 l5_循环结构程序设计_第2页
第2页 / 共37页
清华大学c语言程序设计 l5_循环结构程序设计_第3页
第3页 / 共37页
清华大学c语言程序设计 l5_循环结构程序设计_第4页
第4页 / 共37页
清华大学c语言程序设计 l5_循环结构程序设计_第5页
第5页 / 共37页
点击查看更多>>
资源描述

《清华大学c语言程序设计 l5_循环结构程序设计》由会员分享,可在线阅读,更多相关《清华大学c语言程序设计 l5_循环结构程序设计(37页珍藏版)》请在金锄头文库上搜索。

1、第5讲 循环结构程序设计 陈来军(010-62795814) 清华大学电机系 2015.10.21计算机 程序设计基础计算机程序设计基础1. 循环结构的C程序设计举例2. 循环语句 a) while b) do-while c) for3. 跳转语句 a) Break b) continue c) Goto 4. 循环结构小结2主要内容 CONTENTSC程序设计(第四版)第5章C语言程序设计: 现代方法(第2版)第6章计算机程序设计基础3前4讲回顾 程序构成 main函数、头文件、return 语句 数据类型 int、float、char 表达式 算术、赋值、逗号表达式、scanf、pri

2、ntf 程序结构 顺序结构、选择结构 继续学习:循环结构计算机程序设计基础1 循环结构的C程序设计举例4 展示程序1:幸运字母思考:该程序的功能?循环循环计算机程序设计基础1 循环结构的C程序设计举例5 展示程序2:阶乘!1tiN开始开始1it*i ti+1 i结束结束NY循环循环计算机程序设计基础1 循环结构的C程序设计举例 展示程序3:超越方程求解 ex+ 2x = 500,要求误差小于10-66012345678050010001500200025003000方程特点 1. 左侧单调递增 2. 右侧为常数 关键问题 找交点 求解思路 借鉴幸运52猜价格 游戏,不断缩小价 格(解)区间计算

3、机程序设计基础1 循环结构的C程序设计举例 展示程序3:超越方程求解 ex+ 2x = 500,要求误差小于10-67需要用到数学函数库循环循环计算机程序设计基础82 循环语句 1. while循环 语法while(表达式) 循环体语句循环体语句YesNowhile表达式特点 表达式成立时,反复执行循环体语句计算机程序设计基础92 循环语句 while循环与if语句的对比循环体语句YesNowhile表达式特点 表达式成立时,反 复执行循环体语句int sum = 0; while (sum0); 花括号中内容执行不到计算机程序设计基础142 循环语句 2. do-while循环 语法特点 先

4、执行一次循环体 表达式成立时,反复执行循环体do 循环体语句 while(表达式);表达式循环体语句YesNowhiledo计算机程序设计基础152 循环语句 do-while与while的比较及其等价写法while循环 先判断表达式再执行循环体语句 do-while循环 先执行循环体语句再判断表达式do 循环体语句 while(表达式);循环体语句 while(表达式) 循环体语句计算机程序设计基础162 循环语句 do-while循环示例(1-100求和)标准语法,不是死循环!计算机程序设计基础172 循环语句 3. for循环 语法特点 更简洁:一行语句完成多个功能 更灵活:三个表达式均

5、可省略 更实用:三种循环中最常用for(expr1 ; expr2 ; expr3) 循环体语句expr2循环体假(0)真(非0)expr1expr3for计算机程序设计基础182 循环语句 for循环与while的比较及其等价写法for(expr1 ; expr2 ; expr3) 循环体语句expr1; while(expr2) 循环体语句 expr3; for 循环while 循环思考: expr2 省略时会怎样?计算机程序设计基础192 循环语句 for循环示例将数值0 - 9转换为字 符0 - 9并输出程序执行结束后, 输出是多少?知识点回顾:整数0、字符0以及0计算机程序设计基础2

6、02 循环语句 for循环示例思考: 程序会如何执行?计算机程序设计基础212 循环语句 编程小提示 在for语句的圆括号后放置分号会导致for语句程序 体只执行一遍 for ( i =10; i0; i-);/* WRONG */ printf(“Errorn”); 程序体仅执行一遍,输出结果为: Error计算机程序设计基础222 循环语句 嵌套循环示例:乘法口诀表计算机程序设计基础232 循环语句 for语句中的省略表达式for(expr1 ; expr2 ; expr3) 循环体语句for 循环i = 10; for (; i0 ; -i ) printf(“T minus %d an

7、d countingn”, i);for (i = 10; i0 ; ) printf(“T minus %d and countingn”, i-);i = 10; for (; i0 ; ) printf(“T minus %d and countingn”, i-);for (i = 10; i0 ; -i )思考: for ( ; ; ) 语句的含义计算机程序设计基础243 跳转语句 1. break语句exprbreak;假(0)真(非0)whilewhiledobreak;.expr假(0)真(非0)expr2break;.假(0)真(非0)forexpr1expr3作用:跳出整个

8、循环计算机程序设计基础253 跳转语句 Break用法示例?问题1:执行break语句后, 跳转到哪条语句?问题2:没有break语句会 怎样? (死循环!)break的作用 跳出整个循环计算机程序设计基础263 跳转语句 2. continue语句exprcontinue;假(0)真(非0)whilewhiledocontinue;.expr假(0)真(非0)expr2continue;.假(0)真(非0)forexpr1expr3 作用:跳出本次循环 (结束执行循环体)计算机程序设计基础273 跳转语句 continue用法示例 问题1:执行continue语句 后,跳转到哪条语句?问题2

9、:换成break语句会 怎样? (循环提前结束!)作用:跳出本次循环 (结束执行循环体)?计算机程序设计基础283 跳转语句 无限循环(编程习惯) 编程中常用的无限循环形式 while (1) 或for( ; ; ) if 语句1 break; if 语句2 continue; C程序员喜欢采用这种构造无限循环+中断的方式进行 编程计算机程序设计基础293 跳转语句 3. goto语句 语法思考: 执行完goto语句后, 程序下一个执行语句是?语句标号:语句goto 语句标号;计算机程序设计基础303 跳转语句 goto用法示例(1-100的求和)仅仅只是语句标号!建议尽量少地使用goto语句

10、计算机程序设计基础313 跳转语句 使用goto语句的一种情况 从包含switch语句的循环中退出 由于由于break语句在此只能跳出语句在此只能跳出switch,无法跳出外层循环,无法跳出外层循环。 举例 账簿余额维护程序,程序将为用户提供选择菜单,清空 账户余额,往账户上存钱,从账户上取钱,显示当前余 额,退出程序。计算机程序设计基础323 跳转语句输入4 执行goto命令 退出程序计算机程序设计基础333 跳转语句 关于goto语句 goto是条件跳转指令,可以使程序的执行跳转到另一个位 置,因此它会破坏其它的控制流机制(如FOR,IF SWITCH) 所提供的有用结构,从而造成难以阅读

11、的“垃圾代码”。由 于goto语句既可以往前跳又可以往后跳,所以使得程序难 以阅读。 理论上,goto语句是可以通过顺序、选择和循环结构来避 免的。 A Case against the GO TO Statement filetype计算机程序设计基础344 循环结构小结寻找具有 某种特性 元素统计, 求和特殊形 式输出逐一处理, 直至达标循环特点求总体 幸运字母 阶乘 1-100累加找个体 超越方程求解 能被15整除的数处理全体 数值与字符转换 乘法口诀表计算机程序设计基础综合示例35寻找30以内的质数 算法思考 质数定义:只能被1或者自身整除的自然数(不包括1) ,称为质数。 利用它的可

12、以循环判断该数除以比它小的每个自然数( 大于1),如果有能被它整除的,则它就不是质数。计算机程序设计基础综合示例36#include int main() int num,i,count = 0; int N=30; for (num = 2; num = N; num+) for (i = 2; i num; i+) if (num % i = 0) break; if (i = num) printf(“%4dn“,num); return 0; 计算机程序设计基础*算法的艺术37寻找30以内的质数 其他算法思考 定理:如果一个数是合数,那么它的最小质因数肯定小 于等于他的平方根。 例如:50,最小质因数是2,250的开根号 即:如果一个数能被它的最小质因数整除的话,那它肯 定是合数,即不是质数。所以判断一个数是否是质数, 只需判断它是否能被小于它开根后的所有数整除,这样 做的运算就会少了很多,因此效率也高了很多。其他方法:筛法求质数(有兴趣自行学习)

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

最新文档


当前位置:首页 > 生活休闲 > 科普知识

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