环境
UiPath Studio Community 2022.4.3
Windows
C#
定义
循环是指根据指定条件重复执行一组操作。在 UiPath 中,最重要的循环包括:
后条件循环
它在满足条件时会执行一个特定序列。每次执行序列后都会评估条件。
例如,机器人可以在网站上执行刷新命令,然后检查是否已加载相关元素。它会不断刷新,不断检查,直至发现相关元素已加载。
先条件循环
它在满足条件时会执行一个特定序列。每次执行序列前都会评估条件。
在很多情况下,它可以与“后条件循环”互换,唯一的区别是何时进行条件验证。但是,在某些情况下,其中之一可能更加合适。例如,如果机器人玩二十一点纸牌游戏,则应先计算手上的点数,然后决定是否再抓一张牌。
遍历循环
它对集合的每个元素执行一个或一系列活动。
这在数据处理中非常有用。假设有一个整数数组,“遍历循环”可以让机器人检查每个数值项是否满足特定条件。
If流程修改
这里,我们将前文If条件语句Demo的示例做进一步修改来实现后条件语句:
- 在为 If 条件语句添加了闰年判断条件的同一序列中,我们添加了一个“后条件循环”活动,并将之前的所有活动(“输入对话框”和“If 条件语句”)移到主体框中。
- 作为“后条件循环”的条件,我们指定了与“If 条件语句”活动相反的条件,因为我们希望只要值不是闰年,就一直重复循环:!((year mod 4 == 0 && year mod 100 != 0) || (year mod 400 == 0))。
项目的最终呈现应如以下屏幕截图所示。
流程图修改
这里,我们将前文If流程图Demo的示例做进一步修改来实现后条件语句:
- 在流程图中,这更容易实现,因为我们只需将 箭头从 False 分支的“消息框”活动拖动到上面的“输入对话框”活动。
项目的最终呈现应如以下屏幕截图所示。
实现方式
先条件循环
“先条件循环”活动用于在满足特定条件时重复执行特定流程。该活动与后条件循环活动之间的主要区别是,在“先条件循环”活动中,将在执行循环主体之前对条件进行求值。
为了举例说明如何使用“先循环条件”活动,让我们创建一个自动化,它可将整数变量从 10 增加到 100,并将所有数字写入 Microsoft Word 文档。
- 创建一个新序列。
- 创建一个整型变量
Counter
,默认值为 10。 - 向“设计器”面板中添加“先条件循环”活动。
- 在“条件”字段中,键入“
Counter
< 100”。这意味着循环的主体将一直重复,直到Counter
变量的值大于 100 为止。 - 在“先循环条件”活动的“主体”部分中,添加“赋值”活动。
- 在“属性”面板的“至”字段中,添加
Counter
。 - 在“值”字段中,键入
Counter
+1。这会将Counter
的值加一。 在“赋值”活动下添加一个“附加文本”活动。
该活动是 Word 活动包的一部分。如果没有该活动,请使用 包管理器功能安装它。
在“文件路径”字段中,键入 Word 文档的路径并用引号括起。
在运行自动化时请勿使用 Word 文档,否则系统将显示消息错误并停止执行。
- 在“文本”字段中,键入“计数值现为“ +
Counter.ToString
+“.”。项目的最终呈现应如以下屏幕截图所示。
- 按 F5。系统将执行自动化。
- 双击第 9 步中指定的 Word 文档。注意,10 到 100 之间的所有数字都将按预期写入。
后条件循环
“后条件循环”活动用于在满足条件时执行自动化的指定部分。不再满足指定的条件时,项目将退出循环。
为了举例说明如何使用“后条件循环”活动,让我们来创建一个自动化,它可将整数变量从 0 递增到 10,并且每次递增后显示一条消息。
- 创建一个新序列。
- 创建一个整型变量
Counter
,默认值为 0。 - 向“设计器”面板中添加“后条件循环”活动。
- 在“正文”部分中,添加“赋值”活动。
- 选择“赋值”活动,并在“属性”面板中的“至”字段中添加
Counter
变量。 - 在“值”字段中,键入
Counter
+1。这可以帮助您将变量的值加一。 - 在“赋值”活动下添加“写入行”活动。
- 在“文本”字段中,键入“计数器是” +
Counter.ToString
。每次计数器的值递增时,这会在“输出”面板中写入计数器的值。 - 在“后条件循环”活动的“条件”部分中,输入
Counter
<10。重复“后条件循环”活动的主体,直到Counter
变量的值大于 10。 - 按 F5。系统将执行自动化。注意,“输出”面板显示“写入行”活动中指示的消息。
项目的呈现应如以下屏幕截图所示。
遍历循环
“遍历循环”活动用于逐步浏览数组、列表、数据表或其他类型的集合,从而可以迭代数据并单独处理每条信息。
为了举例说明如何使用“遍历循环”活动,让我们来创建一个自动化,它可遍历一个整数数组的每个元素,并将数组和每个元素的长度写入“输出”面板。
- 创建一个新序列。
- 创建一个整型变量数组
FibonacciNumbers
。 - 在“默认值”字段中,键入斐波那契数列直至达到所需的值,例如 new int[] {1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89}。
- 在“设计器”面板中添加“遍历循环”活动。
- 请勿对“遍历循环”字段进行任何更改。
- 在“输入”字段中,添加
FibonacciNumbers
变量。此活动查看提供的变量中的每个单独项。 - 在“遍历循环”活动的“主体”部分中,添加“写入行”活动。
- 在“文本”字段中,键入“此斐波那契数列的长度为“ +
FibonacciNumbers.Length.ToString
+ ”并且包含“+item.ToString
+”元素。”。此表达式用于在“输出”面板中写入数组元素的总数和数组的每个元素。项目的最终呈现应如以下屏幕截图所示。
- 按 F5。系统将执行自动化。请注意,“输出”面板显示数组中每个元素的正确消息。
遍历循环进阶
- 首先,我们创建了一个序列项目,然后添加了“选择文件夹”活动,从而提示用户指定计算机上的文件夹。活动的输出是存储在我们创建的 字符串变量中的完整路径。
- 我们创建了一个在“分配”活动中使用的fileInfo数组,以便使用“new DirectoryInfo(folderPath).GetFiles()”方法获取文件:
- 我们添加了一个“遍历循环”活动来遍历数组中的每一个项目(文件),并执行了以下活动:
- 使用“Replace”和“ DateTime.Today.ToString("_yyyy_MM_dd")”方法生成文件的新名称,并将其存储在局部字符串变量中:fileName.ToString().Replace(".doc", DateTime.Today.ToString("_yyyy_MM_dd") +".doc")。
- 我们使用了“日志消息”活动打印新名称,还使用了
- 我们使用了“移动文件”活动更改文件夹中文件的名称。
输入
序列总览
序列细节
序列细节
输出