本节课中,您将学习循环。循环是用于指令计算机连续数次执行某操作的一种方式。事实上,计算机擅长快速执行重复操作。
设想您需要按照要求连续书写自己的名字100次。这可能不仅需要您投入大量时间,还可能多次出错。但对于计算机而言,这堪称是一项完美的任务,可以毋庸置疑地快速完成,且不出现任何错误。您可以使用循环,利用计算机的这一特点。循环就是会重复运行的代码块。
循环包含两种类型,即“while 循环”与“for 循环”。While 循环一直重复运行代码块,直到条件不再为真。For 循环则按特定次数重复运行代码块。此外,您将学习for each 循环,for 循环的其中一种类型,代表列表中的每项对应重复运行代码块一次。那我们就来逐一详细地学习吧!
For循环
For 循环将按一定次数重复运行代码块。其名称由来于您可以按照意愿,指令所开发的应用程序持续重复运行代码的次数。您可以将循环看作是指令应用程序“重复持续该操作17次”或“持续重复该操作5次”。
For 循环采用被称为计数器的变量,计数代码已重复运行的次数。通过设置计数器的开始与结束值,您就能控制循环重复的次数。此外,您要设置代码每重复运行一次,计数器的增加值。大多数情况下,您应设置循环每重复一次,计数器增加1。 使用App Inventor和Thunkable编写的循环如下所示:
“number”所在的方框代表的就是计数器。虽然此刻,计数器表示的是number,但您也可以更改它。Number从1开始,将在等于5时停止。循环中的代码每重复运行1次,number增加1。因此,该循环所包含的代码将最多重复运行5次。此刻,由于do文本框中的内容为空,因此该循环不执行任何操作。我们通过一个例子来学习吧!
我们没有对循环中number 变量的值做任何修改,但在do文本框中添加了一些代码。循环每运行一次,应用程序将向用户发出一条内容为“hello”的提示信息。因此,用户会收到5次提示。应用程序利用该循环运行的方式如下所示:
若希望向用户发送内容为“hello”的提示信息5次,可以使用该循环。不过,因为使用5个连续的提示代码块发送“hello”的提示信息也不难,因此,该循环对此情形的优势并不明显。但若希望向用户发送100次内容为“hello”的提示信息呢,该怎么办?这时,使用循环就比编写100个连续的代码块容易得多了。
让循环发挥作用的另一种方式,是在代码中使用计数器变量。事实上,循环每次运行都对应计数器变量不同的值,这非常实用。举例如下:
在该for 循环中,我们将变量number 添加到文本“hello”之后,从而在代码中用到了number这一变量。number每增加1,应用程序将运行一次,并发送不同的提示信息。应用程序当前采用该循环的运行方式如下所示:
for each 循环
您可以在App Inventor和Thunkable中使用的另一种for循环实用类型如下所示:
该示例中,计数器变量名为item。同时,已设定按照列表中的项目数字重复该循环。任何时候,只要您需要按照列表执行操作,这些循环都非常有用。让我们假设您有一张数字列表,您希望对列表中的每个数字求和,并将结果存储为名为合计的变量。使用for each 循环执行该操作的方法如下所示:
循环每运行一次,numberList中的一个项目就会加总到变量sum中。列表中的每个数字都加总后,循环将自动停止。循环运行过程如下所示:
● 列表中有一个项目,开始循环。 ○ 全局合计 = 0 + 44 ● 项目仍在循环中,重复循环。 ○ 全局合计 = 44 + 7 ● 项目仍在循环中,重复循环。 ○ 全局合计 = 51 + 16 ● 循环中没有余留项目,退出循环。 ○ 设定标签1文本为67
注意:您可能注意到本示例中的计数器变量与您在 代码5: 变量 中学习的局部变量类似,种类众多。与局部变量一样,您只能在循环中使用计数器变量。
While循环
While循环指条件不再为真前一直持续运行的循环。其得名由来于只要条件为真,代码就会持续重复运行。您可以在需要指令所开发应用程序“当该条件具备,则重复该操作”,或“当该条件尚未变更,则重复该操作”时,使用该循环。 思考以下两个示例:
您将要举办一场聚会,希望全部宾客离场前,不断播放音乐。那么,您可以采用如下循环满足聚会要求: ● 当(现场宾客人数>0时) ● 执行:持续播放音乐 | 若还希望当聚会时间超过午夜后,停止播放音乐,该怎么办呢?您可以运用逻辑运算符,编程依据多重条件,用while循环终止音乐播放循环。现在,您可以采用如下循环满足聚会要求: ● 当(现场宾客人数>0)与(时间<午夜)时 ● 执行:持续播放音乐 ● 此例中,只要全部宾客离场或聚会时间超过午夜,就会停止播放音乐。
|
为了使用while 循环,您需要设置用于循环开始且为真的条件。若开始条件为假,循环将不会运行。循环每次重复运行前,都会检查开始条件,以确保其始终为真。
使用App Inventor编写的while 循环如下所示:
运行while 循环可能出错!若选择的条件在任何情况下均为真,那么任何情况下,您的循环都不会终止运行。这被称为无限循环。举例如下:
由于1始终等于1,任何情况下,该条件均为真。因此,在App Inventor中运行该代码时,我们的手机会出现死机,从而无法执行任何操作。此外,您可能收到内容为App Inventor Companion 应用程序已停止运行的信息。若正在编码,您将举步维艰!重启companion 应用程序后重试吧! |