循环
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 的元素个数上限为止。