第六章 第二节 scratch3.0 分支结构

Scratch的控制模块中的如果…那么如果…那么否则积木可以根据不同的条件做出不同的决定,从而控制程序的行为。它们是根据逻辑表达式采取行动的。本节会详细讨论这两块积木以及将变量作为标志的思想,然后介绍嵌套的分支结构,并使用它实现以菜单驱动的程序。

分支结构也叫做选择结构,首先进行条件判断,只有符合一定的条件,程序才会被执行。

分支结构包括单分支、双分支和多分支(分支的嵌套)三种形式。


如果…那么---单分支结构
如果…那么积木是一个做决定的积木,它根据条件测试后的结果决定是否执行一段脚本。其结构和相应的流程如下图所示。

image


将变量作为标志位

还记得我们在做《大家来找茬》游戏的时候,为了让同一个“不同点”不能重复生效,我们设置了一个标志变量key_press,一开始将key_press设为0,然后检查key_press的值,如果key_press=0,就执行造形切换和计数器加1及播放声音,然后将key_press设为1。如果key_press=1,则被点效是无效的。image

标志本质上是变量,它使用两个任意数值指示事件发生与否的状态。

在实践中,通常使用0(即false)表示事件未发生,使用1(即true)表示事件已发生。

例如:

image

如果…那么否则---双分支结构

假设某个数学类程序提出一个加法问题,如果学生回答正确,加一分;若回答错误,则减一分。你可以使用两个如果…那么积木解决该问题:
如果回答正确,那么分数变量 score加1
如果回答错误,那么分数变量 score减1
此外,你还可以将两个如果…那么合并为一个如果…那么…否则,这样逻辑更简单,代码更高效:
如果回答正确,那么
分数变量 score加1
否则
分数变量 score减1

如果条件为真,则执行如果…那么内的脚本。但若条件为假,则执行否则内的脚本。程序一定执行且仅执行两者之一。因此,两条路径的如果…那么…否则积木也称为双分支结构,而一条路径的如果…那么积木称为单分支结构。该积木的结构和流程图如图所示。

image

例子讲解:判断一个数是偶数还是奇数。

image


多分支结构(分支的嵌套)

如果条件1为真,则执行如果…那么内的脚本;但若条件为假,则再测试条件2是否为真,如果为真,则执行那么内的脚本,若条件为假,执行否则里的脚本。程序一定执行且仅执行三者之一

image

嵌套

例子讲解:石头剪刀布、幸运数字、小猫巡线

image


菜单驱动程序

源文件下载:长方体和正方体_NoCode.rar

在实践中,程序常会列出菜单选项并根据用户的选择来决定程序的行为,而这是非常典型的嵌套分支结构的场景。下面我们就来学习以菜单驱动的程序。当程序开始运行时,它会显示一个列表(或者叫作菜单)等待用户输入选项对应的数字。这种程序通常会使用一系列的嵌套分支结构判断用户的输入和相应的行为下面通过一个几何图形面积计算程序学习嵌套分支结构,界面如图6-9所示。

image_thumb

本程序的舞台背景展示了可选择的选项(即数字1、2或3);角色Tutor询问用户的选择、执行计算并显示计算结果。其主程序脚本如下图所示,单击绿旗即可开始运行。

image_thumb1

角色Tutor询问并等待用户输入,然后使用三个如果…那么…否则进行处理。如果用户输入的是有效选项(即1、2或3),脚本则调用相应的过程计算面积。否则脚本使用说…积木告知用户输入的选项无效。计算图形面积的三个过程如下图所示。

image_thumb5[1]

image_thumb3

image_thumb6

posted @ 2020-10-13 16:17  有间学堂  阅读(4012)  评论(0编辑  收藏  举报