Skip to main content

循环

1 说明

1.循环元件,在移入画布后,表现形式为一个大框,用于确定作用范围。

2.在这个大框的范围内,有且必须只能有一个没有被连线指向的元件,作为循环里面的第一个被执行的元件。

正确示例:

错误示例:

3.在这个大框范围内,没有指出去连线的元件,被当作一次循环内的最后一个元件,执行完该元件后,会开启下一次循环。

2 配置

2.1 数据源

2.1.1 循环类型

目前分两种类型:

1.遍历循环,需要与实体集合搭配使用,每次循环都会从实体集合中取出一个实体并输出,直到取完集合中的所有实体。

2.while 循环,需要与表达式配合,每次开启循环都会计算一次表达式,直到表达式的计算结果返回 false。

2.1.2 循环

当循环类型选择了遍历循环,会出现此选项。

用于选择当前画布中,可用的实体集合变量。

2.1.3 循环对象名称

当循环类型选择了遍历循环,会出现此选项。

因为遍历循环会每次都从实体集合中取出一个实体,所以需要给这个实体起个名字,方便循环内的元件使用这个实体数据。

2.2 while 表达式

1.点击该选项下面的输入框,会弹出一个窗口,用户可以在该窗口里面可以使用公式编辑器。

2.在公式编辑器中填写的表达式,返回结果必须是布尔值,即真假。

3.该表达式,必须在任何有穷时间范围内,能够返回 false,否则会出现死循环的情况,即循环永远不会结束。

2.2.1 数组使用 while 循环示例

对于如下一个已知的字符串数组进行循环

2.2.1.1 创建一个循环索引 i

先创建一个初始值为 0 的 i(名称随意)作为索引

2.2.1.2while 循环数组

循环条件【#i<seq.size(#list)】意为从 0 开始(因为初始值 i=0,当然也可以不从 0 开始),当 i 小于数组#list 的元素个数时,继续循环

2.2.1.3 获取数组元素

通过 seq.get(#list, #i)获取数组#list 中第 i 个位置上的元素,使用一个变量来接,变量的类型自己指定,因为使用人是知道数组中存储的对象类型的,如果是实体择可以使用【复用对象】节点来接取出来的元素;

2.2.1.3 索引 +1

当完成此循环后,对索引 i 进行 +1,意为下一次循环可以获取下一位的元素;知道 i 达到#list 的元素个数上限为止。