少儿编程

系列

和 Vicky 一起学习 Scratch 系列之五 | 变量

前言

上一期,我们学习了 Scratch 中的最后一种流程控制方式 —— 选择,并做了一个小猫说 “HAPPY NEW YEAR” 的动画。

今天我们来学习一个编程中很重要的概念 —— 变量。

什么是变量?

Change is the only constant in life.

Heraclitus

这个词在生活中很少出现,好像不太好理解,在计算机科学中,变量的定义是很复杂的,包含多种属性。

我们现在只需要对变量做个形象化的理解即可。举个例子来说一下:

叶子 | Unsplash

我们都知道,对于一片叶子而言,它的颜色在四季中是不一样,会随着季节的变化而发生改变,那怎么来表示叶子的颜色呢?

我们可以 定义 叶子的颜色为 变量 color,然后把某一种颜色 赋值 给变量 color。

如果是夏天,那么:
    color = 绿色
如果是秋天,那么:
    color = 黄色
如果是冬天,那么:
    color = 红色
                

我们发现,叶子的颜色不是一成不变的,而是根据季节而发生不断的 改变,我们把值会发生改变的这个 color 称为变量。

我们再来看一个例子:

盆栽植物 | Pixabay

如果我们养了一株小树苗,它从破土而出,到长大的过程中,发生了什么变化?

Vicky:大了呀,叶子多了呀。

没错,我们会明显的发现,从外观上看,主要发生了两处变化,首先,这株植物越长越高,叶子也越来越多。

如果我们关注叶子的数目,可以用一个名字来代表叶子的数量,比如 number。

随着小树的长大,number 的值会从开始的 3 变为 4, 再变为更多:

number = 3
number = 4
number = ...
                

这个 number 也是变量。

再有,一个人的年龄,一天中的气温,你学习的英语单词的数量,它们都是在不断变化的,都可以用变量来进行定义和表示。

好啦,初步理解了变量的含义后,我们用 Scratch 来做一个含有变量的小动画吧~

程序的逻辑

今天,我们来做个企鹅宝宝找妈妈的动画:在南极的冰原上,企鹅宝宝和妈妈走散了,一开始,企鹅宝宝还慢慢的走着找妈妈,后来越来越着急,走的就越来越快了。

布置舞台和角色

这一步我们做过很多次啦,做完后是这样的:

舞台背景和角色

需要说明一点的是,我们调整了企鹅的大小,方法是修改箭头指向的 “大小 Size” 里面的数值,数值越小,角色就越小。

定义和使用变量

在使用变量之前,我们先做一个基本的小动画,就是企鹅宝宝每次向前移动一步,放在循环里执行:

企鹅开始匀速移动

怎么能让企鹅宝宝越走越快呢,变量派上用场了:我们定义一个表示步伐的变量 —— steps,初始赋值为 1,表示开始时第一次企鹅宝宝移动 1 步。

具体操作是点击左侧 “变量 variables” 按钮,再点击 “建立一个变量 Make a Variable” 按钮:

建立变量

在弹出窗口中, 在 “新变量名 New variable name” 中填写变量的名字 “steps”:

为变量命名

现在,新的变量就创建出来了,我们把 “将 steps 设为 0 set steps to 0” 拖到脚本区循环的上方,并把初始值由 0 改为 1,表示企鹅宝宝第一次走 1 步。

为变量设置初始值

然而企鹅宝宝不是每次移动一步,而是移动 steps 步,因为 steps 是一个变量,可以发生变化,这样企鹅宝宝移动的速度就可以由我们来控制了。

所以我们再把变量 steps 拖到脚本区,放到原来的 “移动 1 步 move 1 steps” 中的 1 的位置:

使用变量

我们的设定是让企鹅宝宝越走越快,所以在每次企鹅宝宝走完当前的步数后,我们把循环中的变量 steps 在原有的基础上多一步,这样变量的值就发生了变化。

把左侧的 “将 steps 增加 1 change steps by 1” 拖到脚本中的 “移动 steps 步” 的下方:

让变量发生变化

这样,程序运行起来,企鹅宝宝就会越走越快啦,同时在左上角还会显示变量 steps 的当前值,表示企鹅宝宝每一次走的步伐数:

越走越快的企鹅宝宝

故事的发展

企鹅宝宝如果就这样一直走下去,会越走越快,停不下来,这可不行,它是要找妈妈的。

在不远的将来,我们会添加一个新的角色 —— 企鹅妈妈,当企鹅妈妈出现时,企鹅宝宝就会停下脚步,扑向妈妈的怀抱~

今天我们还知道了 8 个单词的含义:

  • size 大小
  • variable 变量
  • make 建立
  • new 新的
  • name 名字
  • set 设置
  • move 移动
  • change 改变