极奇策RPA技术教程:For 次数循环节点 (NodeForLoop) - 自动化开发与配置详细指南

For 次数循环 (NodeForLoop)
📖 节点概述
最经典的确定性循环节点。它从一个 起始值 开始,以固定的 步长 递增,直到达到(但不包含) 结束值。每递增一次,就会完整地执行一遍连接到 循环体 出口的所有逻辑,并且你可以在循环体内随时读取 当前索引。
💡 使用场景:
- 批量处理:遍历列表,对每一项执行相同操作(将索引作为列表下标)。
- 重复执行:连续点击同一个按钮 N 次、发送固定数量的请求、生成 N 个随机数。
- 定长操作:逐帧播放动画、分段滚动页面、按固定次数写入日志。
- 可视化替代:完美替代传统代码中的
for i in range(...)。
🎮 实战连线指南:如何正确使用它?
可视化循环的关键在于:循环体 出口连接的所有节点,都会在每一轮迭代中被重新执行一遍,而 当前索引 的值会自动更新为该轮的索引。
场景案例:连续创建 5 个文件夹(Folder_0 ~ Folder_4)
- 配置循环:拖出【For次数循环】节点,将
起始值设为0,结束值设为5(不包含 5)。 - 构建循环体:将【For次数循环】的
循环体输出连接到【创建文件夹】节点的执行入口。 - 传递索引:将【For次数循环】的
当前索引输出连接到【字符串拼接】节点(拼出类似 "Folder_" 的名称),再将拼接结果连入【创建文件夹】的文件夹名称引脚。 - 收尾工作:将【For次数循环】的
循环完成输出连接到【打印日志】节点,输出“全部创建完成”。
注意:
循环体内部不要再次触发本节点的执行,否则可能形成死循环。
⚙️ 引脚与参数说明
📥 输入引脚 (Inputs)
| 引脚名称 | 数据类型 | 说明 |
|---|---|---|
| Exec | EXEC | 控制流入口,激活后开始执行循环。 |
| 起始值 | INT | 循环从该整数开始(包含)。默认值:0。 |
| 结束值 | INT | 循环在该整数处停止(不包含)。默认值:10。 |
| 步长 | INT | (高级选项) 每次递增的间隔,必须为正整数。默认值:1。 |
📤 输出引脚 (Outputs)
| 引脚名称 | 数据类型 | 说明 |
|---|---|---|
| 循环体 | EXEC | 每轮迭代都会触发此出口一次,连接需要重复执行的逻辑。 |
| 当前索引 | INT | 输出本轮迭代的索引值(从起始值 开始)。仅在 循环体 执行期间有效。 |
| 循环完成 | EXEC | 所有迭代顺利结束后,从此出口触发一次,可用于后续清理或通知。 |
🧠 核心底层机制 (必读避坑)
❓ 问:当前索引 的值是怎么传进循环体内部的? 答: 节点在每一轮迭代开始前,会将当前索引值存入一个内部临时存储区 (ctx.set_state)。在 循环体 内部,任何连接到 当前索引 输出引脚的节点,都会通过 evaluate 机制实时拉取到这个值。这种“先存入,再拉取”的方式保证了索引在整条执行链中保持一致。
❓ 问:能不能在循环中途提前终止? 答:可以。 引擎支持 __break__ 状态。如果你在 循环体 内部通过其他节点(如条件判断)设置了 __break__ 为真,当前轮次执行完毕后,循环会立即终止,并直接跳转到 循环完成 出口。这相当于传统代码中的 break 语句。
❓ 问:步长可以是负数或小数吗? 答:不能。 该节点在定义时强制 步长 最小值为 1,且小数位数为 0,因此它只支持单调递增的正整数循环。如果需要倒序或小数步长,请使用其他控制流节点组合实现。
这篇文档对您有帮助吗?
您的反馈将帮助我们持续优化文档内容

