![UiPath RPA开发:入门、实战与进阶](https://wfqqreader-1252317822.image.myqcloud.com/cover/221/39888221/b_39888221.jpg)
4.2.1 While
While是条件循环活动,当流程中需要满足某种条件就循环执行某件事务时,就可以使用While活动。
While活动由Condition和Body两部分组成,如图4-43所示。其中Condition为必填项,为布尔表达式,Body里面是满足条件时循环执行的活动。
当流程执行到While活动时程序先执行Condition布尔表达式,如果等于True则执行循环执行循环体Body里面的流程或活动。执行完毕程序将返回到Condition布尔表达式,如果等于True则继续执行循环体Body里面的流程或活动,循环往复,直到Condition布尔表达值等于False时退出循环体,执行While活动之后的流程。
下面通过一个简单的案例来理解下While的用法。
【例4.5】计算1到100所有整数的和。
1)进入Studio界面,点击Process创建一个流程,命名为4_5_While,如图4-44所示。
![](https://epubservercos.yuewen.com/CF253F/20784355001359406/epubprivate/OEBPS/Images/4-43.jpg?sign=1738839937-HKCek2WJe1dFFLmyZnJwJPMluAQKZ10Q-0-e58d33cbafa65593d8bf77db6beb968f)
图4-43 While活动
![](https://epubservercos.yuewen.com/CF253F/20784355001359406/epubprivate/OEBPS/Images/4-44.jpg?sign=1738839937-h1NtESsORNoSQR0Q84mbiAk61irAtZpU-0-b96788d69c35e69fc4f4207b9d00be18)
图4-44 新建流程
2)进入Main,在Activities面板搜索While,并将其拖入主窗口如图4-45所示。
![](https://epubservercos.yuewen.com/CF253F/20784355001359406/epubprivate/OEBPS/Images/4-45.jpg?sign=1738839937-L4pVgZI8L3H8rDafYTZ8aGrSKEFJpXjE-0-abcec9124e5cae51ab7b42c2e8dbfb57)
图4-45 拖入While活动
3)选中While活动,在Variables面板中新建两个Int32类型的变量,LoopNumber初始值为1用于计数,TotalSum初始值为0用于求和,如图4-46所示。
![](https://epubservercos.yuewen.com/CF253F/20784355001359406/epubprivate/OEBPS/Images/4-46.jpg?sign=1738839937-spzULz4CmLK44CxA6Yx0vOorA0TGXHin-0-d8e3c88952f3f85bfe1ddde201091112)
图4-46 新建变量,并设置初始值
4)在While循环体内拖入一个Assign活动,设置TotalSum=TotalSum+LoopNumber,用于累计求和,然后将While的Condition条件改为LoopNumber<=100,如图4-47所示。
5)在第4步的Assign的下面再拖入一个Assign,设置LoopNumber=LoopNumber+1用于累计循环次数,当循环次数大于100时退出循环,如图4-48所示。
![](https://epubservercos.yuewen.com/CF253F/20784355001359406/epubprivate/OEBPS/Images/4-47.jpg?sign=1738839937-XCRxOEgwHoBWdnmC06rEJkn0VeB3jMjs-0-f0865c8254ffd4a2a90636845641de93)
图4-47 设置While控制条件和累计求和算式
![](https://epubservercos.yuewen.com/CF253F/20784355001359406/epubprivate/OEBPS/Images/4-48.jpg?sign=1738839937-pFWSIoUU4OCzIcWjYYGgSXIUFPmhech7-0-9aa197d1e540d1cbfa9420741c4dd5da)
图4-48 设置LoopNumber自加1
6)在While活动的下面拖入一个Write Line,并将其Text属性值改为“"1到100所有整数的和等于"+TotalSum.ToString”,如图4-49所示。
![](https://epubservercos.yuewen.com/CF253F/20784355001359406/epubprivate/OEBPS/Images/4-49.jpg?sign=1738839937-sfJshkMaGSb69UT9Epb1qWuDyyeEiGBh-0-2690770d43a7e584a7cfafed34534ee0)
图4-49 设置输出活动Write Line的属性
7)按Ctrl+F6快捷键执行程序,在Output面板中查看结果,如图4-50所示。
![](https://epubservercos.yuewen.com/CF253F/20784355001359406/epubprivate/OEBPS/Images/4-50.jpg?sign=1738839937-4UANZGtjE8xvHAALZdaB1nz8Aurww1sO-0-719980c7d31ec1a85effa9950bccf4ce)
图4-50 执行结果
注意
通常情况下While的循环体内应该包含能改变Condition条件表达式的语句,例如LoopNumber=LoopNumber+1,以控制While循环次数,否则容易造成死循环。