循环
# 1 循环图元介绍
循环图元提供了类似Java中的for循环和while循环的功能。遍历集合可以是数组类型或者是java.util.Collection类型;
在循环图元的内部可以添加任何的业务图元,只要符合循环条件,循环体内的图元将会被执行。
循环退出:相当于Java中的break语句,用于退出当前循环。
跳过当前循环:相当于Java中的continue语句,用于跳过当前的本次循环。当循环中的图元发出连线指向循环开始图元或者循环结束图元时,即为跳过当前循环。
# 2 使用介绍
# 2.1 使用循环
逻辑流中支持循环操作提供了遍历集合和按条件循环的功能。
# 2.1.1 遍历集合
被迭代元素支持如下情况:实现Collection接口的对象、数组(对象数组或者简单类型数组)、org.w3c.dom.Element(对Element进行循环是对该Element下面的所有子Element依次进行循环)。循环迭代变量可以是一个定义的变量,此时可以在表达式中直接使用它;也可以是一个未定义的动态变量。
示例一:如何使用遍历集合方式遍历一个字符串集合?
在逻辑流中将一个字符类型集合参数orders
进行遍历取值操作。
1.参数定义
在逻辑流中定义一个参数orders来作为循环的被迭代变量,数据类型为List,再定义一个变量order用于作为循环中的迭代变量,数据类型为String;
2.循环图元参数配置
在循环图元参数设置中,遍历方式勾选为遍历集合,被迭代元素输入参数orders
,循环迭代元素输入变量order
。
3.执行调试
最后可以通过开启断点调试来查看循环迭代元素order
在循环中的参数变化。
传入orders
的值为集合["1","2","3"]
,执行之后,在每次循环中,变量order
的值都在变化迭代集合orders
的值
# 2.1.2 使用条件循环
遍历方式设置为按条件循环,相当于一个while循环,只要条件符合,就会一直循环。 条件循环包含两种循环条件设置方式,如下:
(1)简单表达式:简单表达式只能有一行,不支持多条件的与、或操作。如果需要多条件,可以使用Java表达式来处理。
简单表达式的左值是可赋值的变量或属性。具体来说,它可以是定义的变量、变量实体中的属性,或者是数组中的某个元素。
在选择比较操作符时,需要根据具体的业务场景进行判断。比较操作符用于比较两个值的大小关系,如等于、不等于、大于、小于等。根据业务需求,选择合适的比较操作符进行比较操作。
右值是指表达式中用于比较的值,可以是常量或变量。
通过合理选择比较操作符和右值类别,可以实现逻辑流中的各种比较操作,从而进行循环控制。
示例二:如何使用简单表达式做条件循环?
在逻辑流中定义一个数字类型参数count
,基于该输入参数来实现从数字1到该数值的所有自然数的之和。
a.参数定义
在逻辑流属性设置中,定义输入参数count
,数据类型为'Int',返回值result
表示最后的计算结果。变量length
作为条件变量。
b.循环图元参数配置
设置循环开始图元循环方式为按条件循环,条件信息选择简单表达式,表达式左值设置为length,比较操作符为小于,右值为count,右值类别为变量。当length小于count的时候,循环一直执行。然后在循环内为length与返回值result做赋值操作即可。
c.执行调试
最后可以通过启动逻辑流来查看循环计算结果。输入参数count
值为10,计算得出从1到10之间的自然数之和为55。
可以通过开启断点调试来查看循环迭代元素order
在循环中的参数变化。
(2)Java表达式:返回值必须是布尔类型。例如:name.equal("pimeton")。
在Java表达式中,可以使用隐含变量。(隐含变量:访问当前逻辑流上下文中的数据,逻辑流上下文隐含变量:context——访问会话上下文中的数据。
)
示例三:如何使用Java表达式做条件循环?
在逻辑流中,可以使用循环结构来遍历实体对象数组,并对每个数组元素进行相应的处理。以订单实体对象orders数组为例,可以使用循环图元来遍历orders数组中的每个元素,并将每个元素的值赋给变量实体order。 通过这样的操作,可以在每次循环中访问并操作order实体对象的属性字段。这些属性字段可以用于执行各种业务操作,
a.参数定义
在逻辑流属性设置中,定义输入参数orders
,数据类型为业务实体类型,变量order
作为循环赋值变量,数据类型与输入参数一致。变量i表示当前的数组循环下标。
b.循环图元参数配置
设置循环开始图元循环方式为按条件循环,条件信息选择Java表达式,表达式内容设置为i<orders.length
,然后在循环内适用赋值图元为order
变量做赋值操作即可。
c.执行调试
最后可以通过开启断点调试来查看变量order
在循环中的属性值变化。
说明:
如果从循环体内的图元直接连线到循环开始图元,相当于continue操作。