第五章 第一节 Scratch3.0数据类型
本章介绍脚本如何使用变量读取并记忆信息、与用户交互和响应用户的输入。本章涉及如下内容:
- Scratch3.0支持的数据类型
- 创建并使用变量
- 获取用户输入并与其交互
在前4章中,我们已经学习了不少Scratch编程方法,但还是缺少某些关键元素。一个复杂的程序应当能记忆数值,并根据特定条件选择不同的行为。数值的记忆问题在本章解决,第二个问题将在下一章学习。
对一个复杂的程序而言,我们需要存储、访问、修改数据才能完成一个特定的任务。Scratch中使用变量和列表管理数据。本章介绍变量,列表将在第9章介绍。
本章首先介绍 Scratch支持的数据类型,然后介绍如何创建并使用变量。某些情形下,变量值显示器也能让程序更有趣。在掌握以上内容之后,我们学习使用 “询问…并等待” 积木获得并处理用户的输入。
Scratch的数据类型
从某个角度讲,应用程序的任务是处理各种数据类型(如数字、文本、图像等)的数据并生成有价值的信息。因此,要完成编程任务,必须要理解Scratch中数据类型的概念和Scratch所支持的操作。
Scratch支持三种数据类型:
- 布尔类型
- 数字类型
- 字符串类型
布尔类型 仅有两个值:真或假,即True或 False,通常用1表示True,0表示False。你可以使用它测试一个或多个条件,从而让程序选择不同的执行路径。
数字类型 可以是整数(int)或小数(float)。虽然许多编程语言区分这两者,但 Scratch并不区分,毕竟它们都属于数字。你可以使用数字和逻辑运算模块的将…四舍五入积木、向上\向下取整函数(在平方根积木中选择)把小数转变为整数。例如向下取整3.9得到3,向上取整3.1得4。
字符串类型 是一系列字符的集合。字符可以是字母(大小写均可)、数字(0~9),以及能在键盘上输出的符号(+、-、&、@等)字符串可以存储姓名、地址、图书标题等。
参数凹槽与积木形状
你发现不同积木参数的凹槽形状存在差异了吗?例如,移动10步的参数凹槽是圆角矩形。参数凹槽的形状与其接受的数据类型有关。你可以试一下在移动10步的参数位置输入你的名字(或任何字母、符号),便会发现 Scratch不允许输入非数字的字符。
与之相似,功能积木的外观已经说明了其返回的数据类型,不同形状的含义如下图示。
参数凹槽共有两种形状:六边形和圆角矩形。功能积木的外观同样有两种形:六边形和圆角矩形。每一种形状都和数据类型有关,而圆角矩形既可以代表数字类型,也可以代表字符串类型,例如"回答...."指令块。
注意:Scratch会阻止你将圆角矩形的功能积木拖动到六边形凹槽内。
数据类型的自动转换
我们之前接触的圆角矩形的功能积木(x坐标、y坐标、方向、造型编号、大小、音量、节奏等)得到的都是数字类型。
因此,把它们拖动到数字凹槽(如移动10步)是没有问题的。但是个别圆角矩形的功能积木(例如,侦测模块中的回答积木,或是数字和逻辑运算模块中的连接积木)既可以返回数字类型,也能返回字符串类型的数据。那么问题来了,若回答积木返回的是字符串,那么将它拖动到数字凹槽会怎么样呢? Scratch会自动转换数据类型。如下图示。
Scratch会自动尝试执行各类转换。在理解了Scratch数据类型的概念及自动转换后,开始正式学习变量,并使用它存储和使用数据。