我最近被告知改进for循环很方便使用递减循环而不是增量循环,比如
For(int i=0; i<Limit;i++)
{
//code
}
For(int i=Limit-1; i >=0; i--)
{
//code
}
我不明白为什么有些人会建议使用它,他们的论点是
“使用增量for循环增加了循环内部的验证次数。使用递减循环验证和处理时间减少”
答案 0 :(得分:2)
很多时候,你会看到类似的东西:
for(int i = 0; i < list.length(); i++) {
}
但通常你可以改为
for(int i = list.length(); i >= 0; i--) {
}
这样,list.length()
被调用一次。
当然,这也是一种可能性:
int length = list.length();
for(int i = 0; i < length; i++) {
}
但第一种方式更短。
我很少想到通过如此微不足道的(通常)无关紧要的修复来修复真正的性能问题。如果由于某种原因.length()
真正占用CPU时间,我更喜欢最后一种方式。