RPA021-UiPath中实现循环的七种方法(第4版)

举报
RPA之家 发表于 2021/06/11 12:59:33 2021/06/11
【摘要】 一、缘起今天内部对“循环”进行了培训,就此,做些总结,形成第三版。二、基本概念(序幕)编程中,顺序,选择,循环三种结构方式,可以表述程序中所有解决问题的方法/算法;1)顺序结构:完成一个步骤,接着下一个步骤。2)选择结构:意味着问题的分裂,像一个分叉的人字,到各个分支后又是顺序结构;3)循环结构:以内容行数 或 结果为布尔值的表达式为根据,决定是否进入下一次的循环;行数循环完成,或者表达式结...

一、缘起

今天内部对“循环”进行了培训,就此,做些总结,形成第三版。

二、基本概念(序幕)

编程中,顺序,选择,循环种结构方式,可以表述程序中所有解决问题的方法/算法;

1)顺序结构:完成一个步骤,接着下一个步骤。

2)选择结构:意味着问题的分裂,像一个分叉的人字,到各个分支后又是顺序结构;

3)循环结构:以内容行数 或 结果为布尔值的表达式为根据,决定是否进入下一次的循环;行数循环完成,或者表达式结果为false,循环结束;

本文主题:循环(正片开始)

三、什么时候用循环?

  1. 无法预知确切次数的轮询,例如遍历查询结果的记录行(行数未知);
  2. 简化程序;当你发现你在大段重复写代码时,被重复部分可考虑作为循环体,做出循环,简化你的程序;

四、使用循环的前提

  1. 抽象出了循环体(大段重复的功能);
  2. 找到了循环的依据(例如按行、内容的序号、条件表达式等);
RPA021-UiPath中实现循环的七种方法(第4版)

图1

五、UiPath中实现循环的七种方法

七种方法总体分三大类:遍历、条件、永久;

5.1.遍历循环把需要循环的内容,按行或其排序号,依次循环。

1. For Each Row:只针对数据表,遍历数据表的所有行;

如果循环的行变量名是row,一般通过row("字段名").ToString来取某个字段的值。

2. For Each:可以遍历数组、列表、数据表或其他类型的集合所有内容。

5.2.条件循环

3. While/Do While:判断某个条件式的结果是True还是False,来决定是否继续循环体内的操作或者结束循环;

4. Decision:根据条件的值是True还是False,分别执行True和False后面的流程;Decision可以说是While的特殊模式(只循环1次)。

如上所说,Decision本身是用来做分支的,当你把Decision的一个分支的流程线连接到Decision前面的流程中后,就实现了循环,如下图:

RPA021-UiPath中实现循环的七种方法(第4版)

图2

5. State Machine:可是实现多分支,实现复杂循环;

State Machine是比Decision更灵活的分支方法,这是State Machine的本来功能;

如果你的流程中已经使用了State Machine,此时如果要在State Machine的某个State完成后,实现某种条件时的循环,拉出一根流程线到前序State,就可以实现循环功能,这种用法只有在你已经使用了State Machine的前提下才可能会选择这样使用;

RPA021-UiPath中实现循环的七种方法(第4版)

图3

一般流程比较复杂时,推荐使用State Machine。

5.3.永久循环/死循环

6. while/Do While:条件判断式不写式子,直接写成True;

7.箭头:从Activity上拉出一根流程的线,到自身结束,不需要任何条件,直接永久循环这个Activity的操作(如果是个flowchart,就循环flowchart内的所有内容)。

举例如下:

RPA021-UiPath中实现循环的七种方法(第4版)

图4

六、循环中使用计数器

使用循环这种结构时,会跟”计数器“一起使用,具体如下:

  • 先定义好一个整型变量i,赋初值为0或1;
  • 然后,在循环体中,让i=i+1,起到计数的作用;
  • 在循环体中使用i作为当前行号,便于访问当前记录行,或者触发条件为不满足,从而退出循环。

七、UiPath中选择实现循环时,选用Activity的原则

  1. 实现循环,首选UiPath循环专用Activity,例如For Each Row、For Each、While、Do While。
  2. 其次,当你使用了Decision、State Machine,在前文图示中的场景下,也可以实现循环,此时比使用专用Activity实现循环更方便。
    本质上来说,这些专用循环
    Activity的底层实现的本质都是通过判断,或者说都是if在不同场景下的衍生品,只是不同的循环Activity,在不同场合用起来更方便、让程序更具有可读性
    第2个原则的使用方法,是基于对循环本质的理解的情况下,变通实现了循环,并不是说这些
    Activity本身就是循环或者专用于循环功能。

八、UiPath从业者的睡前故事:一个小箭头,导致死循环

先看个图:

RPA021-UiPath中实现循环的七种方法(第4版)

图5

然后故事:

同事借用我写的一段流程,反馈说我的流程有问题,不停地重复执行。

过去一看,发现他复制我的流程的某个Activity下面,多了个三角,鼠标按住三角一拉,居然是个跟图1一样的流程连接线。

原来,他不小心拉的一根流程线,头和尾都重叠在这个Activity的同一个接触点上了,这跟图1的效果是一样的,会导致死循环,从而流程到此终止,后续流程没机会执行。

ps:用这个方法可以整蛊一下那个谁?!

九、结束语

每个工具中都有专门的循环用Activity(UiPath的名词),若需循环,这些专用Activity是首选;

变通使用一些基础Activity,也能实现一些高级Activity的功能,因为本身这些高级Activity就是基于这些基础Activity的原理实现的。

学习了UiPath中这七种实现循环方法,你就彻底掌握了UiPath中循环结构的用法,祝贺你,掌握了三种程序结构中最难掌握的一种结构。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。