为什么要使用伪代码
好处:
1.辅助开发,可以站在一较高层次上编写代码,而不陷入语法细节, 代替流程图。
2.可以直接将伪代码变成注释,省去编写注释的时间
3.代码变更时,修改伪代码,比修改几十行代码来的容易
要求:
- 避免使用目标语言的语法元素。
- 在意图层面上编写伪代码 。更加接近解决问题的核心,不落入语法细节。
- 在一个足够低的层次上编写伪代码 。便于伪代码转化成代码。
什么时候需要伪代码:
当编写代码困难时,可以 降低代码有复杂度,降低代码实现难度。不随意的编写伪代码,保证伪代码足够的简洁,方便审查代码漏洞。
力求代码足够的接近底层。使伪代码能够快速转化成代码。
案例:产生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》