数组
所谓数组,就是相同数据类型的元素按一定顺序排列的集合。是在程序设计中,为了处理方便,把具有相同类型的若干变量按有序的形式组织起来的一种形式。这些按序排列的同类数据元素的集合称为数组。数组就是把有限个类型相同的变量用一个名字命名,然后用编号区分他们的变量的集合。这个名字成为数组名,编号成为下标。组成数组的各个变量成为数组的分量,也称为数组的元素,有时也称为下标变量。
数组的特点如下:
1、数组是相同数据类型的元素的集合;
2、数组中的各元素是有先后顺序的,它们在内存中按照这个先后顺序连续存放在一起;
3、数组元素用整个数组的名字和它自己在数组中的顺序位置来表示。
前面介绍的数组只有一个下标,称为一维数组,表示方法如 图6.20,可以看出数组的名称(list)是ImageList;数组元素(item)一共有10个有效值,由1开始计数;数组下标为index,此例中值为1~10。原理参见表6.17。二维数组类型说明的一般形式如图6.21。 App Inventor中的调试方法技术
在App开发中某些功能将不可避免地无法正常工作,或者不按我们所期望的方式运行。一次就让App的全部功能都正常运行的情况是非常少见的。将你的想法完美地转换成实际的代码块也是需要花费些时间的。这就是要用到调式的地方:你必须检查App并找到未能正常工作的地方及原因,接着你必须修复它。
在编写App的时候发现错误并不是坏事,找到并改正错误会让你成为一名优秀的程序员。调试过程也是学习的过程。
注释
让我们从最简单的部分开始:注释。你可以右击任意块并选择“添加注释”。这会在块上创建一个蓝色的问号,它包含一个附着的文本区域,你可以在其中填写任何想要的内容,如图所示。此文本就是供你做注释或者笔记用的,它们解释了你尝试用这个块来做什么。这里没有任何规定,但要记住,注释是为了将来帮助别人理解你现在的想法以及如何通过块来实现这些想法的。 可以通过单机蓝色问号来隐藏(或者取消隐藏)注释框。你还可以再次右击该块并选择“删除注释”来将注释完全删除。
小测试和常测试
让App正常工作的关键是不断地测试你所创建的内容。测试你所添加的每个小特性。一整页你认为能够工作的块,当遇到了在拥挤代码中的某个地方隐藏着的错误时,又不得不将其拆散,最糟糕的事情莫过于此了。
预览代码功能
App Inventor为测试和调试提供了一个重要工具:预览代码功能。只要连接了设备或者模拟器,你就可以在任意时刻任意块上右击,并从菜单中选择“预览代码功能”。此选项会立即在设备上运行该块,即使它并不在某个事件中。
预览代码功能特性很简单,你可以以多种方式使用它,这取决于你的块和需要做的测试。以下是一些使用“预览代码功能”特性来辅助测试和调试的示例:
重置列表(将列表设置为空列表)
将精灵移动到起始位置
启动网络微数据库查询来测试响应行为
单步运行较大的块栈,每次运行一个块
立即运行任意块并在手机上观察产生的结果
对于有结果值的块,预览代码功能之后在计算机屏幕上展示结果
预览代码功能有一个更重要的功能。某些块有结果输出(一个向左的槽),当调用这些块时,他们会通过该槽输出某些类型的结果值。如果对这些块使用Do It特性,计时它们没有附着在任何块上,App Inventor也会在屏幕上展现结果。该结果会被写入到注释中,如图所示。这是一个插了值的普通注释。再次选择Do It会更新打印出来的值。
良好的名称
编程的一个重要部分就是取名。虽然计算机和手机不会关心你给按钮取了个什么名字,但对于人来说,这是件大事。
名称不只是描述某物用途的一两个单词。命名的过程让你思考它应该做什么和不应该做什么。你可能有一个名为 按钮_提交 的按钮,这个名称让它对其他人来说一目了然,而对你来说,这个按钮是用在提交过程中的。
变量命名
过程命名
真正好的名字会让阅读代码块的人不需要研究块就能知道该块的用途。
备份你的工作
在App Inventor中开发,程序会自动地备份工作。然而,你不应该产生一种很安全的错觉。经常性地备份自己的工作仍是一种良好的实践。
备份的第一个选择就是使用Save按钮,它位于My Projects菜单中。它单纯地确保项目已经保存并做着和自动保存相同的事情。在关闭App Inventor之前做这个操作,以确保自动保存没有漏掉任何东西。
另一个好的实践是保存项目的检查点。例如,在以下的时候,这会很有用:当你有了一个可以工作的App,且想要尝试添加一些可能会破坏已有功能的新特性时。检查点创建了项目在当前状态下的一个副本,因此如果需要回退,那么可以打开检查点项目。在创建检查点之后,你继续在原来的项目中工作。任何改动都会保存在原来的项目中,而非检查点副本中。
创建检查点几乎与使用Save As相同,除了在使用检查点时,你继续在原来的文件中工作以外。新文件保存了项目的旧状态。
要保存检查点,从My Projects菜单中选择Checkpoint。接着设置一个名称。