- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
分支+重复结构 Wang Houfeng EECS,PKU wanghf@pku.edu.cn 内容 分支结构 重复结构 else 的配对 if ~ else 配对原则:缺省{ }时,else总是和它上面最近的未配对的if配对 条件表达式(条件运算符) 条件运算符是三目运算符; 格式为: 表达式1?表达式2:表达式3 例子: m=(ab? a:b) 问:该例子的功能? 图示: 条件运算符的运算顺序 先求表达式1,如果满足,则计算表达式2,作为整个表达式的值;否则,计算表达式3为结果值; 一个例子: if(ab) printf(“%d”,a); else printf(“%d”,b); 如何取代为条件表达式? printf( “%d”, (ab) ? a:b); 条件表达式的结果类型由表达式2和表达式3的类型共同决定(取上界——如,一者为整型,一者为实型,则取实型); 用 if 语句实现 if(n=90) printf( grade = A\n ); else if(n=80) printf( grade = B\n ); else if(n=70) printf( grade = C\n ); else if(n=60) printf( grade = D\n ); else printf( grade = F\n ); 内容 分支结构 重复结构 为什么需要循环 在求解问题中,很多功能会连续地重复使用。 例如:1+2+3+…+N,基本运算是: 加法; 如果N足够大! C 语言提供的循环 用goto 和 if 构成循环 结构化循环: while 语句 do ~ while 语句 for 语句 goto 循环 goto构成的循环格式: 例子:求 1+2+3+…+100 例:从键盘输入一组数据,以0结束输入,求数据和 结构化循环: while 循环 while语句 一般形式: while 循环说明 特点:先判断表达式,后执行循环体 说明: 循环体可能一次也不执行(为什么?) 循环体包含多于一条语句时,由花括号表示复合的范围 注意控制循环结束 下列情况,退出while循环 条件表达式不成立(为零) 循环体内遇break,return,goto 无限循环: while(1) 循环体; 例子 阅读程序 结构化循环 — do~while 循环 do~while语句 一般形式: while和do~while转换 Do-while 与 while 的转换 while和do~while比较 for 语句的其它说明 当表达式2空时,形成死循环。如: for( expr1; ;expr3 ); 就是死循环; for 语句具有延时功能,如: for(j=0; j1000; ++j); // for 后为空 表达式1、表达式2和表达式3中的任意一个表达式都可以为空,表达式1和表达式3也可以包含多个赋值语句。如: for ( j=1, k=1; j10; j++, k++ ) for 循环语句主要运用于计数器循环:当循环的次数确定时,常用 for 循环语句。如果循环次数不确定时,主要用 while或do-while for循环语句向 while 的转换 几种循环语句的比较 for 语句主要用于计数循环; While / do-while 主要用于条件循环(计数并不明确),但两者的区别在于条件检测的时机。 goto 语句尽可能少使用。 三种结构循环转换 对于计数循环,While, do-while 和 for 三类循环的功能是等价的,请予以证明! (如何证明) 用流程图 用语句序列 多重循环 三种循环可互相嵌套,层数不限 外层循环可包含多个平行内循环,但不能相互交叉 嵌套循环的执行流程 九九乘法表 九九乘法表程序 Break Continue break语句 功能:在循环语句和switch语句中,终止并跳出循环体或开关体 说明: break只能终止并跳出最近一层的结构 break不能用于循环语句和switch语句之外的任何其它语句之中 continue 语句 功能:结束本次循环,跳过尚未执行的语句,进入下一轮(检测条件) 用于循环语句中 输入10个整数,计算正数个数和平均值 作业与上机 作业: T6.2, T6.4, T6.8 上机: T5.8, T6.6, T6.15 for语句 一般形式: for([expr1] ;[ expr2] ;[ expr3]) 循环体语句; 执行流程: expr2 循环体 假(0) 真(非0) for expr1 e
文档评论(0)