我最近被告知要改进 for 循环,以便使用递减 for 循环而不是增量循环,例如
For(int i=0; i<Limit;i++)
{
//code
}
For(int i=Limit-1; i >=0; i--)
{
//code
}
我不明白为什么有些人会推荐使用这个,他们的论点是
“使用增量 for 循环会增加循环内的验证次数。使用减量循环时,验证和处理时间会减少”
我最近被告知要改进 for 循环,以便使用递减 for 循环而不是增量循环,例如
For(int i=0; i<Limit;i++)
{
//code
}
For(int i=Limit-1; i >=0; i--)
{
//code
}
我不明白为什么有些人会推荐使用这个,他们的论点是
“使用增量 for 循环会增加循环内的验证次数。使用减量循环时,验证和处理时间会减少”
很多时候,你会看到这样的东西:
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 时间,我更喜欢最后一种方式。