1

我最近被告知要改进 for 循环,以便使用递减 for 循环而不是增量循环,例如

For(int i=0; i<Limit;i++) 
{ 
 //code
} 

For(int i=Limit-1; i >=0; i--) 
{ 
 //code
} 

我不明白为什么有些人会推荐使用这个,他们的论点是

“使用增量 for 循环会增加循环内的验证次数。使用减量循环时,验证和处理时间会减少”

4

1 回答 1

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 时间,我更喜欢最后一种方式。

于 2013-11-05T03:58:03.487 回答