现象:
最近写代码时遇到一个问题,我根据一个阀值来不停地取一系列候选对象,而在选择候选的时候根据所得候选对象的数目会动态地改变这个阀值,我设置是这样的阀值的案值是20,然后如果所得候选数小于x我就把阀值减5,然后再判断候选对象,当阀值改变到最小为10时结束。但是出来的结果却是阀值以下的对象也被选择了,即对象值小于10的那些对象也被选作了候选对象。
问题:
最后发现问题在于把阀值当作了一个类属性,这样对于每次循环来说,阀值的初始值是在变化的,,在写这个的同时又意识到了一个错误,我是用的一个do while语句实现的循环,这样两点就造成了每次循环的初始阀值越来越小的情况,而第一次do的时候又没有判断阀值的最小值,所以造成错误。
为什么会出现这种错误呢?
- do while自己很少用,没经验啊……
- 阀值应该设置为一个常量,动态改变时就另外定义一个局部变量;
怎么也也码了几年了,可以写程序还是出现这种错误,到底怎么才算是优秀、卓越、牛X的程序员呢
多写,多看,多思考,我觉得
写代码的过程应该是一个思考的过程,而不是一个机械动作
改代码更要顾全全局