【blockly】循环教程

内容来源于此维基
https://github.com/google/blockly.wiki.git

控制类别包含控制是否运行放置在其主体中的其他块的块。(例如,在下面的“重复”块中,正文包含“打印”块及其输入。有两种类型的控制块:如果其他(在他们自己的页面上描述)和这些,它们控制主体运行的次数,在某些情况下,控制主体中使用的变量的值。这些结构被称为环,因为身体(可能)重复多次,让人联想到包含环的绳索。每次通过循环称为一次迭代(译者注:为避免歧义,文中翻译为“一轮循环”)。有关详细信息,请参阅 https://en.wikipedia.org/wiki/Control_flow#Loops。

用于创建循环的块

重复
最简单的“重复”块在其主体中运行代码指定的次数。例如,下面的块将发送“你好”十次。
屏幕截图 2023-05-13 141922

重复时
想象一个游戏,玩家掷骰子并将所有掷出的值相加,只要总数小于 30。以下块实现该游戏:

名为x的变量的初始值为 0。
循环从检查总数小于 30 开始。如果是这样,则运行正文中的块。
生成 1 到 6 范围内的随机数(模拟模具辊)并存储在名为y的变量中。
打印滚动的数字。
可变总数x通过滚动增加。
到达循环终点后,控制返回到步骤 2。

循环完成后,将运行任何后续块(未显示)。在我们的示例中,循环将在打印 1 到 6 范围内的一定数量的随机数后结束,变量x总计将保存这些数字的总和,保证至少为 30。

有关详细信息,请参阅 https://en.wikipedia.org/wiki/While_loop。

重复直到
“重复同时”循环在某些条件为真时重复它们的身体。重复直到循环是相似的,只是它们重复它们的主体,直到某个条件为真。以下块等效于上一个示例,因为循环包含直到 x大于或等于 30。

计数方式
带块的计数(在大多数编程语言中称为 for 循环)将第一个值与第三个值相加,直到第一个值等于第二个值。例如,以下程序发送数字 1、3 和 5。

屏幕截图 2023-05-13 144202

如以下两个循环所示,每个循环打印数字 5、3 和 1,第一个输入可能大于第二个输入。无论增量量(第三个值)是正数还是负数,行为都是相同的。

屏幕截图 2023-05-13 144253

屏幕截图 2023-05-13 144302

遍历列表
for 每个块(参见 https://en.wikipedia.org/wiki/Foreach) 是类似的,只是它不是以数字序列给出循环变量值,而是依次使用列表中的值。以下程序发送列表的每个元素:“1”、“2”、“3”。

环路端接块
大多数循环一直运行到满足终止条件(在重复块的情况下)或直到循环变量获取所有值(在每个循环的计数的情况下)。两个很少需要但偶尔有用的块为控制循环行为提供了额外的方法。尽管以下示例适用于每个循环,但它们可以与任何类型的循环一起使用。

继续下一轮循环
继续下一轮循环(在大多数编程语言中称为继续)会导致跳过正文中的剩余代码,并开始下一轮循环(传递)。

以下程序在第一轮循环中打印“1”。在第二轮循环中,运行“继续下一轮循环”块,跳过“2”的打印。在最后一次迭代中,打印“3”。

屏幕截图 2023-05-13 145424

跳出循环
循环中断块提供了从循环的早期退出。以下程序在第一次迭代时打印“1”,当循环变量等于“2”时,在第二次迭代时“中断”循环。永远不会到达列表中的第三项。

屏幕截图 2023-05-13 145612

4 个赞
2 个赞

隐藏了已过时的内容。

1 个赞

感谢,要不是您我可能永远都不知道循环命下面不能接终止后续逻辑(来自对编程语言完全不了解的用户)

2 个赞