1

最近、 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 に答える