新手课堂 - 透过王二的一生说“流程控制”(二)

上回 新手课堂 - 透过王二的一生说“流程控制”(一) 写到王二麻子的……
咳咳,是之前说了控制流程中的 For 循环、If 分支以及 Continue 继续,接下来继续介绍流程控制中的其他组件。
1.Try 异常

用来检测开始流程步骤中的错误,从而让异常流程步骤捕获异常信息并进行处理;开始流程步骤运行中没有出现错误,那么就不执行异常中的步骤。
新手课堂 - 透过王二的一生说“流程控制”(二)

随着年龄增长,王二脸上渐渐爬满了麻子,他心里却有了自己的想法。
原本乖巧听话的一个人开始变得叛逆起来,但这都不是事儿,少年青春期很正常。只是王二到底年轻气盛,却是做了不少傻事。
开始:先执行开始后链接的组件及其后续步骤,弹出第一个 "乖巧听话" 的消息框,接着执行下一个组件,此处内容中的文本未用引号括起(下图红色方框),抛出异常,后续流程步骤不再运行,直接进入异常模块。
王爸王妈发现儿子误入歧途,当即插手处理。针对孩子的叛逆,没有什么是王妈的一顿揍解决不了的,如果有,那就混合双打。
异常:出现错误,立即跳转至异常,针对错误做出相应处理。
最后,叛逆的少年果然成长了,尽管是经历了一番血与泪的教训。但无论是否出错,人都是要成长的,这是必须要经历的过程。
结束:无论有无异常,最后都执行结束后链接的流程步骤,此处弹出消息框”少年长大了“。

新手课堂 - 透过王二的一生说“流程控制”(二)

想到这,王二麻子不由感叹,当初自己不犯错的话,也就不会挨打了。不过谁的青春不曾放肆过呢?
如果开始后连接的步骤流程没有出错,自然就不会触发异常中的操作流程;但是在程序运行过程中,错误是难以避免的,程序设计的本身没有错误,但如果突然弹出一个窗口,或是网络延迟或中断,甚至运行过程中操控的软件崩溃呢?这都可能会让程序运行产生错误,为了让机器人继续自动处理,需要将这些异常信息进行捕获,然后做出对应的处理。所以说 Try 异常的处理很是重要。

2.While 循环

用于循环执行程序,即在先判读满足条件的情况下,则开始进入 while 循环执行某段程序,以处理需要重复处理的相同任务。不满足条件则不会进入 while 循环进行操作。

话说少年王二已经长大,成了青年王二麻子,开始了上班的社畜生活:每天起床上班,下班睡觉,两点一线,日复一日,没有间断。虽然辛苦了些,但好在报酬还不错,而且王二能吃苦。他打算先干个 10 年,先给家里盖个新房子,当然还得存点老婆本啊。可惜,王二上班的第二年却是除了点意外,休息了整整一年都没去工作,不过身强志坚的王二休整好后立马又回归了岗位;直到第 6 年,王二觉得在这样下去,虽然能赚到钱,而且也给家里盖个新房子,也存了些钱,但工作太忙,哪有空找女朋友?为了自己的终身大事,王二麻子毅然辞职,结束了这种周而复始的工作生活。
新手课堂 - 透过王二的一生说“流程控制”(二)

  • 设置一个变量 year,值为 1,表示刚开始工作第一年;
  • While 循环判断条件当 year 小于等于 10 时,则执行 while 循环内的步骤;此时 year = 1,满足条件;
  • 循环内依次输出”起床洗漱”、“上班“、”午餐“,“下班晚餐”、“睡觉”,然后 year 的值增加 1,year =2;
  • year =2,满足循环条件,使用 if 判断当 year 的值为 2 的时候,先使 year 的值增加 1,year =3,然后使用 Continue 继续组件跳出 while 的当前循环,后续的流程步骤不再执行;此处要注意先让 year 的值增加 1,否则,year 一直为 2,就会进入死循环;
  • year=3 依旧满足循环条件,依次输出”起床洗漱”“、上班“、”午餐“,“下班晚餐”、“睡觉”,然后 year 的值增加 1。如此反复,直到 year=6,依旧符合循环条件,但执行到循环内的 Break 中断,直接跳出 While 循环,执行 While 循环外的流程步骤,弹出消息框“开始新生活”。
    而事实上,While 循环多使用 True 作为条件,步骤每次走到这的时候都会进入该 while 循环,当遇到特定的情况时,使用 Break 组件跳出,以免死循环。
    新手课堂 - 透过王二的一生说“流程控制”(二)

3. 序列

就是用于排版的工具,没有其他的作用。
新手课堂 - 透过王二的一生说“流程控制”(二)

4.Break 中断

上述 While 循环中,如果没有 Break 中断,那么循环在 year 自增到 11 不再满足循环条件时,循环才会停止。而Break 中断组件便是用来终止循环语句,跳出循环,而且 break 语句只能用在 while 和 for 循环中。

话又说回来,王二麻子自从开始了自己的新生活后,日子过得是蒸蒸日上。
现在王二麻子已是岁至不惑了,想着自己如今的滋润生活,抚摸着自己的便便大肚,满面油光的脸上不禁露出一个淡淡的笑容。
可是此刻人竟没有了呼吸。。。。却是青年时期打工落下的病根突然爆发了。
新手课堂 - 透过王二的一生说“流程控制”(二)

For 循环执行到 pd=’中年’的时候,If 分支条件 pd==‘中年’ 为真,执行 Break 中断,不再执行后续流程步骤以及下一个 pd =’老年’时的循环,而是直接跳出 For 循环。

5.Return 返回

就是将结果返回到调用的地方,并把程序的控制权一起返回。

王二麻子的故事完了,这里另外举个栗子你就应该懂了吧。
添加一个子流程 flow2,设置一个变量 loc_val = True(在变量模块中设置也是一样的),然后 Return 返回变量 loc_val。也就是说整个流程运行后,结果返回 loc_val。
新手课堂 - 透过王二的一生说“流程控制”(二)
在主流程中添加子流程 flow2, 返回值作为 If 分支的判断条件,真就输出“Yes”,假则输出“No”。流程 flow2 返回 loc_val 的值 True,输入 If 分支条件,自然执行真链接的步骤流程,此处输出 Yes。
新手课堂 - 透过王二的一生说“流程控制”(二)

当然,loc_val 的值为 False 的话,流程 flow2 返回值为 False,主流程则输出 No。