(一) Number in General
1.一条经验:程序主体中仅能出现的文字量就是0和1.任何其他文字量都应该换成Named Constants来表示
(0用于 for 0 to constant do;1用于total+=1)
2.预防除零错误.(一般都会报错的,不过也很重要)
3,使类型转换变得明显.(Java:Integer.prase(String); String.ValueOf(int))
4.避免混合类型的比较(也就是不要把不同类型的数值进行比较)
(二)Integers
1.检查整数除法(比如说:7/10,结果不是0.7,而是0)
2.检查整数溢出(也就是说要检查数值范围)
3.检查中间结果溢出(比如说:1000000*1000000/1000000,中间结果就溢出了)
(三)Floating-Point Numbers
1.避免数量级相差太大的数之间的加减运算(比如:500000000.002-500000000.001可能结果是0.0,结果出错)
2.避免等量判断(正确的做法是给出一个精度,只要两个数值在这个精度范围内,都可以算是相等)
3.避免舍入误差(行之有效的做法是把浮点变量变成整数变量,比如0.001的话就乘上1000,让它变成整数来处理,处理后再除以1000).
(四)Characters and Strings
1.避免off-by-one错误.(也就是末尾一位字符的处理问题)
2.了解你的语言编码问题.(unicode,utf-8,big5.......)
(五).Boolean Variables
1.用boolean变量来简化判断.(复杂的判断句可以用几个boolean变量来代替,这样可以判断这几个boolean值就能更直观.可读性,维护性更好.)
2.很有用的几个boolean变量:done;error;success;found
(六)Enumerated Types
1.定义出枚举的第一项和最后一顶,以便于循环,把第一个元素留下做非法值.
例子:
enum color{
color_InvalidFirst=0;
color_First=1; color_Red=1; color_Green=2; color_Blue=4; color_Black=8;
color_Last=8;
};
2.自定义枚举类型
例子:
class country{
private country(){}
public static final country china=new country();
public static final country England=new country();
public static final country France=new country();
public static final country Germany=new country();
}
(自定义枚举类型很有用,可以用country.china来访问代替全局变量.这个时候,我们掌握了两个代替全局变量的方法,当只有一个类用到这个变量时,我们可以用访问器子程序来访问,当有很多类要用到这个变量时,就可以用自定义枚举法来访问.)
(七)Named Constants
无什么好记的
(八)Arrays
1.要检查数组边界点.
(九)Create Your Own Types.
(帮主整理2008年1月15晚晚上23点54分)