内容来源于此维基
https://github.com/google/blockly.wiki.git
控制类别包含控制是否运行放置在其主体中的其他块的块。(例如,在下面的“重复”块中,正文包含“打印”块及其输入。有两种类型的控制块:如果其他(在他们自己的页面上描述)和这些,它们控制主体运行的次数,在某些情况下,控制主体中使用的变量的值。这些结构被称为环,因为身体(可能)重复多次,让人联想到包含环的绳索。每次通过循环称为一次迭代(译者注:为避免歧义,文中翻译为“一轮循环”)。有关详细信息,请参阅 https://en.wikipedia.org/wiki/Control_flow#Loops。
用于创建循环的块
重复
最简单的“重复”块在其主体中运行代码指定的次数。例如,下面的块将发送“你好”十次。
重复时
想象一个游戏,玩家掷骰子并将所有掷出的值相加,只要总数小于 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。
如以下两个循环所示,每个循环打印数字 5、3 和 1,第一个输入可能大于第二个输入。无论增量量(第三个值)是正数还是负数,行为都是相同的。
遍历列表
for 每个块(参见 https://en.wikipedia.org/wiki/Foreach) 是类似的,只是它不是以数字序列给出循环变量值,而是依次使用列表中的值。以下程序发送列表的每个元素:“1”、“2”、“3”。
环路端接块
大多数循环一直运行到满足终止条件(在重复块的情况下)或直到循环变量获取所有值(在每个循环的计数的情况下)。两个很少需要但偶尔有用的块为控制循环行为提供了额外的方法。尽管以下示例适用于每个循环,但它们可以与任何类型的循环一起使用。
继续下一轮循环
继续下一轮循环(在大多数编程语言中称为继续)会导致跳过正文中的剩余代码,并开始下一轮循环(传递)。
以下程序在第一轮循环中打印“1”。在第二轮循环中,运行“继续下一轮循环”块,跳过“2”的打印。在最后一次迭代中,打印“3”。
跳出循环
循环中断块提供了从循环的早期退出。以下程序在第一次迭代时打印“1”,当循环变量等于“2”时,在第二次迭代时“中断”循环。永远不会到达列表中的第三项。