第八章 语句级控制结构 程序设计语言原理课件方案策划.pptVIP

第八章 语句级控制结构 程序设计语言原理课件方案策划.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第八章 语句级控制结构 程序设计语言原理课件方案策划.ppt

第八章 语句级控制结构 苏松志 ssz@ 主要内容 8.1 引言 8.2 选择语句 8.3 循环语句 8.4 无条件分支 8.1 引言 程序控制流程(执行顺序)的三个层次 命令式语言程序的运行需要控制结构 控制结构: 一条控制语句+一组受控语句 程序单元之间的执行顺序:函数、串行、并行 语句层次的执行顺序:选择、循环和分支 表达式中的操作符执行顺序:操作符的结合性和优先级 控制语句 受控语句_1 … 受控语句_n 8.1 引言 (语句层次)控制结构的发展历程 Fortran 由IBM 704机器的设计人员设计的 20世纪60年中期至70年中期 所有能有由流程图表述的算法都能够使用如下的两种控制语句来实现: 选择语句:在两条控制流程之间进行选择; 循环语句 推论: 无条件转移不是必需的 = 关于“goto”的争论 [Bohm, 1966] C. Bohm, and G. Jacopini. Flow diagrams, turing machines, and languages with only tow formation rules. Commun. ACM, 1966, 9(5): 366-371. goto 之争 提出“goto有害论”; 提出信号量和PV原语; 解决了有趣的“哲学家聚餐”问题; 最短路径算法(SPF)和银行家算法的创造者; 第一个Algol 60编译器的设计者和实现者; THE操作系统的设计者和开发者; /~EWD/welcome.html 8.2.1 选择语句的设计 控制选择的表达式形式及其类型 基于C的语言不使用保留字then来引出then子句,而是将控制语句放在括号中 C89没有布尔数据类型,使用算术表达式作为控制表达式 C99/C++使用算术表达式和布尔表达式作为控制表达式 Ada/Java/C#,只能使用布尔表达式作为控制表达式 if (控制语句) { 子句1_n; } 程序演示 8.2.1 选择语句的设计 子句形式 then子句、else子句可以是简单语句,也可以是复合语句; But,Perl中所有的then和else子句都必须是复合语句,哪怕代码仅仅只有一条语句; 【见程序演示】 Python中使用缩进来指定复合语句;【见程序演示】 8.2.1 选择语句的设计 嵌套选择器 if_stmt ? if logic_expr then stmt ? if logic_expr then stmt else stmt 语法的静态语义说明:else子句总是与最靠近的没有匹配的then子句相匹配. 该规则用来说明语义的二义性 编程提示:增加{},缩进排版整齐 * Form 1: stmt stmt stmt expr E1 S2 then else if expr E2 S1 then if stmt stmt expr E1 then if stmt expr E2 S2 S1 then else if stmt stmt Form 2: 句型if E1 then if E2 then S1 else S2的分析树 摘自李慧琪老师的ppt * 改写为无二义的文法:(else与最近的then匹配) stmt ? matched _stmt | unmatched_stmt matched_stmt?if expr then matched_stmt else matched_stmt | other unmatched_stmt ? if expr then stmt | if expr then matched_stmt else unmatched_stmt 摘自李慧琪老师的ppt 8.2 选择语句 8.2.2 多重选择结构 结构允许在任意数目的语句或语句组中进行一种选择;是选择器的一般形式; 可以用goto,但是可读性差; 设计问题 控制选择过程的表达式的形式与类型是什么? 怎样说明可选择段? 应该将穿过结构的执行流程限制于只能包括单一的可选择段吗? 怎样指定case值? 如果出现了任何未被选择器的表达式所表示的数值,应该怎样处理? 8.2.2 多重选择结构 C/C++/Java/JavaScript的语法形式 switch (控制表达式) { case 常量表达式1: 语句1; … case 常量表达式n:语句n; [default: 语句n+1] } 1. 控制表达式和常量表达式可以是整数类型、字符类型和枚举类型; 2. 可选的语句可以是语句

您可能关注的文档

文档评论(0)

yuzongxu123 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档