变量作用域思考

现象:

 最近写代码时遇到一个问题,我根据一个阀值来不停地取一系列候选对象,而在选择候选的时候根据所得候选对象的数目会动态地改变这个阀值,我设置是这样的阀值的案值是20,然后如果所得候选数小于x我就把阀值减5,然后再判断候选对象,当阀值改变到最小为10时结束。但是出来的结果却是阀值以下的对象也被选择了,即对象值小于10的那些对象也被选作了候选对象。

问题:

最后发现问题在于把阀值当作了一个类属性,这样对于每次循环来说,阀值的初始值是在变化的,发火,在写这个的同时又意识到了一个错误,我是用的一个do while语句实现的循环,这样两点就造成了每次循环的初始阀值越来越小的情况,而第一次do的时候又没有判断阀值的最小值,所以造成错误。

 

为什么会出现这种错误呢?

  • do while自己很少用,没经验啊……
  • 阀值应该设置为一个常量,动态改变时就另外定义一个局部变量;

怎么也也码了几年了,可以写程序还是出现这种错误,到底怎么才算是优秀、卓越、牛X的程序员呢

多写,多看,多思考,我觉得

写代码的过程应该是一个思考的过程,而不是一个机械动作

改代码更要顾全全局

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值