流程图
前言
参考链接:
今天在看以前写到一半的程序的时候有些沮丧,逻辑都理不明白了。我就在想啊,如果我之前有画一个流程图的话,现在再看逻辑是不是就清楚多了。不用耽误特别长地时间。我想这种问题肯定不止我一个人遇到过,大多数人肯定都懒得画这东西。
好吧, 学习一下。
为什么需要流程图
就像我在前言中提到的那样,因为逻辑复杂,再通过阅读代码的方式理清程序的逻辑会很麻烦,而且比较耽误时间。最好的方式是一边阅读代码,一边看流程图对照梳理逻辑。流程图的作用就是帮助我们将复杂的过程直观地展示出来,提高我们的效率。而且,流程图还能帮助我们优化程序流程,方便我们寻求改进的机会。再者,流程图可以提高我们职场的沟通效率,有些问题难以用口头表述,用一张流程图,就能高效地解决沟通问题。
流程图
要学会使用流程图,首先要知道流程图的各个图形形状所代表的意思。下面这张图介绍了一些画流程图的特定符号,一定要记清楚:
其中有几个是重要且最常用的,要牢记!
流程图结构
跟程序一样,流程图有三大结构:顺序、选择和循环。感觉也不能说是跟程序一样,应该说是我们在处理一些事时所采取的方式。
顺序
各个步骤是按先后顺序执行的,即完成上一个指定的操作,才能执行下一个动作。
选择
分支结构,用于判断给定的条件,根据判断的结果,来控制程序的流程。在实际操作中,某一判定结果可以为空。
循环
又称为重复结构,流程在满足一定的条件下,反复执行某一操作的流程结构。循环结构又分为“当型结构”和“直到型结构”。循环结构包括三个要素:循环变量、循环体和循环终止条件。
当型结构:先判断所给条件 P 是否成立,若 P 成立,则执行 A(步骤);再判断条件 P 是否成立;若 P 成立,则又执行 A,若此反复,直到某一次条件 P 不成立时为止。
直到型结构:先执行 A,再判断所给条件 P 是否成立,若 P 不成立,则再执行 A,如此反复,直到 P 成立,该循环过程结束。
我最开始理解的当型结构就是while
循环,直到型结构就是do...while
循环,这个直到型的理解是有问题的。问题在于:当条件成立时,才会执行循环体;不成立时应当退出循环,这和直到型结构判断后执行的操作相悖。
流程图绘图注意事项
万事都有门道儿。
-
为了提高流程图的逻辑性,应遵循从左到右、从上到下的顺序排列。一个流程从开始符开始,以结束符结束,开始符只有一个,结束符号可以有多个。若流程足够清晰,可省略开始、结束符号。个人建议还是不要省略,善始善终。
-
菱形为判断符号,必须要有“是和否”两种处理结果。也就是说,菱形判断框一定需要有两条箭头流出;且判断符号的上下端流入流出一般用“是”,左右端流入流出用“否”。
-
同一流程图内,符号大小需要保持一致,同时连接线不能交叉,连接线不能无故弯曲。
-
流程处理关系为并行关系的,需要将流程放在同一高度。
-
必要时应采用标注,以此来清晰地说明流程,标注要用标准的标注符号。
-
处理流程须以单一入口和单一出口绘制,同一路径的箭头应只有一个。
-
流程图中,如果有参考其他已经定义的流程,不需重复绘制,直接用已定义流程符号即可。
Markdown 中的流程图
如何使用 Markdown 绘制流程图就不在这篇文章中写了,其内容放置到 Markdown 的文章中了。
编辑软件推荐
推荐使用 WPS 的流程图功能。功能菜单很直观,而且在流程框方面也有辅助,这一点对于画一个满意的流程图至关重要。也支持“一键美化”功能,选中内容然后美化即可。
支持其他图形,像网络拓扑、组织结构等。对于普通人来讲,功能已经足够。
个人还是比较看好 wps 的发展。wps 功能还是很强大的。相比 office,本土化做的更好,而且有种这几年 wps 不断在蚕食 office 市场份额的感觉,而且付费用户量不断提升。主要是本身质量就挺好,再加上强大的云同步功能,在 wps 上画好保存上传云后,在其他终端也可访问编辑,也不需要保存在其他云盘回家再下载下来,这是办公编辑软件的先天优势。
其他推荐:
- vscode 上支持的插件:VSCode Drawio。
- 偶然间遇到的这个网站,看别人的介绍感觉也可以。