第 18 章 程序中的决策:条件块.pdfVIP

  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文档。上传文档
查看更多
第 18 章 程序中的决策:条件块

第 18 章 程序中的决策:条件块 即使是像⼜袋⾥的⼿机这样⼩型的电脑,也可以在短短⼏秒钟内完成超过数 次的操 作。更令⼈惊奇的是,它们可以基于内存中的数据以及程序员编写的逻辑进⾏决策。 这种决策能⼒在⼈们所思考的⼈⼯智能问题中是极为关键的要素,当然也是创建有趣 的智能应⽤的重要组成部分。本章将探索如何在应⽤中编写判断选择逻辑。 正如我们在第14章所讨论的,应⽤的⾏为由⼀系列的事件处理程序所定义。每个事件 处理程序针对某个特定事件进⾏响应,并实现特定的功能。然⽽,这种响应的过程未 必是按线性顺序来实现各项功能,有些功能只能在⼀定条件下才能执⾏。像游戏类的 应⽤可能就会判断分数是否已经达到了100 ,⽽位置感知类的应⽤可能会问“某个⼿机 是否在某个建筑物的范围之内” 。你的应⽤也可以询问类似的问题,然后根据答案, 继续执⾏不同的程序分⽀。 如图18-1,当事件 (Event 1)发⽣时,⽆论如何A功能都会被执⾏;然后进⾏⼀个检 测判断:如果检测结果为真,则执⾏B 1分⽀;如果结果为假,则执⾏B2分⽀;⽆论执 ⾏哪个分⽀,该事件处理程序的其余部分 (C )都将被执⾏。 由于像图18-1这样的决策图看起来像⼀棵树,因此通常会将这种根据判断结果⽽选择 执⾏的⼀段程序称为“分⽀” 。在这种情况下,你会说, “如果测试结果为真,则执⾏ 包含B 1的分⽀。” 图 18-1 事件处理程序中,根据条件测试的结果执⾏不同分⽀ ⽤if ifelse进⾏条件测试 App Inventor提供了两类条件块 (如图18-2 ):if块和ifelse块。可以从Control抽屉⾥拖 出⼀个if块,然后点击上⾯的蓝⾊图标,弹出可扩充的块,可以根据需要添加任意多 个“else”分⽀。 图 18-2 条件块if ifelse 可以将任何逻辑表达式 (Boolean )插⼊到if右侧的测试插槽中。逻辑表达式是⼀个⽤ 数学等式,它的返回值要么是真 (true ),要么是假 (false )。如图18-3 ,逻辑表达式 使⽤关系运算符 (蓝⾊)以及逻辑运算符 (绿⾊),对属性值或变量值进⾏检测。 图 18-3 ⽤于条件判断的关系 逻辑运算符 ⽆论是if块还是ifelse块,只有“if”后⾯的测试结果为真时,将执⾏“then”右侧插槽中的 块。对于if块,如果测试结果为假,程序将跳出if块,继续执⾏if后⾯的块;⽽对于 ifelse块,如果测试结果为假,将执⾏“else”右侧插槽中的块。 因此,对于⼀个游戏来说,可能会插⼊⼀个与成绩有关的逻辑表达式,如图18-4所 ⽰。 图 18-4 ⽤于测试成绩值的逻辑表达式 在本例中,如果成绩到达100 ,则播放⼀个声⾳⽂件。注意,如果测试结果为假,不 执⾏任何块。如果需要在测试结果为假时执⾏某些操作,可以使⽤ifelse块。 编写⼀段⼆选⼀的决策程序 考虑这样⼀个应⽤,⽆聊的时候也许会⽤到它:在⼿机上点击⼀个按钮,就可以随机 地拨打⼀个朋友的电话。如图18-5 ,使⽤⼀个rando integer (随机整数)块来⽣成⼀ 个数字,然后⽤ifelse对⽣成的数字进⾏判断,来决定即将拨打的电话号码。 图 18-5 ⽤ifelse块判断随机⽣成的整数来选择要拨打的号码 在这个例⼦中,rando integer 的参数为1和2 ,意味着将以相等的⼏率产⽣1或2 ,所产 ⽣的随机数保存在变量rando Nu 中。 ⼀旦取得了变量rando Nu 的值,在ifelse块中将变量值与1进⾏⽐较:如果 rando Nu 的值为1,程序将执⾏第⼀个分⽀ (then ),将电话号码设置为“ 111- 1111” ;如果变量值不为1,测试结果为假,程序执⾏第⼆个分⽀ (else ),电话号码 被设置为“222-2222” 。⽆论测试结果如何,程序都将拔打电话,因为是在整个ifelse块 的下⾯调⽤了MakePhoneCall过程。 多重条件判断 许多情况下不只是双重选择,即,可选择的结果不仅仅是两个。例如,也许你希望可 以给更多的朋友随机拨打电话,因此就需要在原来的else分⽀中,再加⼊⼀个ifelse , 如图18-6所⽰。 图 18-6 外层条件判断的else分⽀中加⼊另⼀个ifelse条件判断 在这些块中,如果第⼀个检测条件结果为真,程序将执⾏第⼀个“then”分⽀并拨打号 码“ 111-1111” ;如果第⼀个测试结果为假,则执⾏外层的else分⽀,此时将⽴即进⾏另 ⼀个测

文档评论(0)

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

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

版权声明书
用户编号:7014141164000003

1亿VIP精品文档

相关文档