关于数组漏判

判断数组内所有元素,并删除满足条件的元素.

 

Eg:我们需要把数组arr内大于3的元素删除掉,那么我们写了如下代码:

 

 

该代码的执行结果如下所示

,

会发现内容与预期不符,是因为指针与元素的相对位置导致的漏判产生的.

 

对代码进行如下修改(增加一行i--;)

 

添加了i--;之后,那么才是我们需要的结果.

i--;所做的是改变了指针的位置,对每一个元素都进行了判断.

  

内容位置变化之后,指针位置也应该相应变化,那么就能避免漏判. 

 

大家可以发现将今天老师所写的代码中的i--;注释掉之后,代码的运行在肉眼上观察并没有什么区别,那是因为计时器每10ms执行一次,所以里面的for循环也是10ms执行一次,那么所漏判的的对象,将会在下一次执行for循环时删除,然而这一切发生的时间太快,所以肉眼观测不出区别.

 本文是针对今天老师所讲的判断边界的for循环内,大家对i--;的理解问题所写,个人见解,仅供参考.

 

posted @ 2016-05-03 00:55  李青山  阅读(119)  评论(0编辑  收藏  举报