伪代码的好处:
1.辅助开发,可以站在一较高层次上编写代码,而不陷入语法细节. (完全代替uml 中的流程图, 流程图其实与最终代码没有多大关系, 就不推荐使用)。
2.可以直接将伪代码变成注释,省去编写注释的时间
3.代码变更时,修改伪代码,比修改几十行代码来的容易
要求:
1. 避免使用目标语言的语法元素。
2. 在意图层面上编写伪代码 。更加接近解决问题的核心,不落入语法细节。
3. 在一个足够低的层次上编写伪代码 。便于伪代码转化成代码。
很多人知道并会使用UML, 但我认为他们其实忽视了UML, UML 其实是一种抛弃代码, 思考代码的一种方式.
UML的意图是图解问题, 既可用任何图形来表达想法,解决问题, 而不仅仅是使用UML 里面的各种图形. 因为UML 图并不完善, 里面的有些图并不实用, 有些图又没有, 例如架构图.
这里提到的图解法是UML的核心思想, 用图形表达想法, 用图形设计代码 . 额外的思维导图也提供了一些图解的方式.
伪代码是解决问题的步骤, UML是分析问题的方式. 二者都是应该放入程序员的工具箱子. 而何时图解? 何时伪代码?
一般解决复杂问题, 推荐使用图解法. 例如架构(建议不同方框, 颜色的组合 组合使用)的设计, 核心问题的分析.
伪代码适用于编写代码之前, 思考问题, 罗列解决问题的步骤, 因为它不适合思考问题, 但是适合罗列以及记录.
案例:产生4位数的验证码
//产生安全码,使用表驱动法
public void 伪代码() {
// 1.定义一个空的字符变量,保存安全码
// 2.创建安全码的表,使用数组
// 3.循环4次产生四个在指定范围的数字(为数组的下标),查表,添加到字符变量
// 4.输出字符变量
}
假设在大脑中运行伪代码,一次编写就成功。而不是直接运行代码,调试错误。
检查伪代码,是否简洁,是否能够完成目标。
@Test
public void 伪代码() {
//产生安全码,使用表驱动法
//1.定义一个空的字符变量,保存安全码
String safeCode="";
// 2.创建安全码的表,使用数组
char [] safeCodeList={'a','b','c','d','e','f','d','h','i','g','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
// 3.循环4次产生四个在指定范围的数字(为数组的下标),查表,添加到字符变量
for (int i = 0; i <4 ; i++) {
safeCode+=safeCodeList[(int)(Math.random()*26)];
}
// 4.输出字符变量
System.out.println(safeCode);
//
//
编写完成后:
审查代码:如果代码填充时候,一行伪代码其实现代码过多。应当考虑创建子程序,保证伪代码的简洁,同时细化伪代码。
代码出现错误时:
首先调试代码是否按照伪代码执行。
其次检查伪代码是否有漏洞,修改伪代码,保证逻辑可行,重新编码。
从这个角度分析, 伪代码其实是设计图与代码之间的过度. 是代码的前身, 但是有些问题就不适用于伪代码当合理使用.
附: 关于伪代码的写法: 可参考《代码大全2》
其中:表驱动法:可以大大减少逻辑判断,简化代码。
原文:https://www.cnblogs.com/rainbowbridge/p/12332540.html