循环类拼图参考 - Soft8Soft
Description: 这些拼图提供了在拼图场景中指定迭代的方法。

# 循环 | Loops

这些拼图提供了在拼图场景中指定迭代的方法。

## 内容

- 注意不要创建无限循环
- 拼图参考
  - repeat
  - for each in list
  - for each in dict
  - count with
  - repeat while / until
  - break / continue

#

## 注意不要创建无限循环

使用这些拼图时要额外小心，因为会很容易产生无限循环，导致浏览器崩溃或假死。如果您不小心保存了一个包含无限循环的场景，可以从备份中恢复之前版本的拼图。

#

## 拼图参考

#

### repeat

此拼图将放置在 do 槽中的拼图运行指定次数。

例如，下面这组拼图创建了几个立方体的副本，并将它们随机地放置在场景中。

#

### for each in list

此拼图遍历一个指定的列表，并为该列表中的每一个项目运行放置在 do 槽中的拼图。可以通过自动创建的变量来获取遍历对应的项目。

例如，下面这组拼图为列表中的所有对象添加标注。

#

### for each in dict

此拼图遍历一个指定的字典，并为该字典中的每一个项目运行放置在 do 槽中的拼图。可以通过自动创建的键/值变量来获取遍历对应的项目。

例如，下面这组拼图将存储在字典中的飞行方向打印到浏览器控制台。

#

### count with

此拼图与for each相似，但它以数字序列的形式给出了循环变量的值。

例如，下面这组拼图以2为步数从2数到10，从而创建了数字2、4、6、8和10，每一步都执行一次克隆立方体，并使用这些数值在X轴方向为其设置位置。

#

### repeat while / until

只要指定的逻辑条件为真，repeat while 拼图就会运行放在 do 槽中的拼图。相反，repeat until 拼图在指定的逻辑条件评估为false后就停止运行。

此拼图很适合在循环内部有变化，并且影响到您决定继续或停止执行迭代的情况下使用。例如，下面这组拼图使用了 repeat while 变体，只要用户回答"yes"，就一直询问用户的答案。

您可以使用 repeat until 变体来问同样的问题，但方式稍微有点烦人，只有回答"no"才会停止。

#

### break / continue

大多数的循环都是运行到满足条件（在 repeat 拼图的情况下），或者直到循环变量取完所有的值（在 count with 和 for each 拼图的情况下）才终止。此拼图提供了额外的方式来控制循环行为。虽然下面的例子使用了 for each 拼图，但是此拼图适用于任何类型的循环。

break 变体可实现提前退出循环。例如，下面这组拼图执行了对一个名为"Cube"的对象的搜索。当找到该对象并设置结果变量后，就没有必要继续迭代搜索了，因此我们使用中断脱离当前循环。

与之相对，continue 变体会跳过当前的迭代，从而开始下一个循环的迭代。例如，下面这组拼图为场景中除"Cube"之外的所有对象添加了标注。

## 在使用拼图时遇到困难？

欢迎您随时在 论坛上提问！您还可以加入中文用户社区QQ群(171678760)，在线寻求帮助。