最近、 for ループを改善するように言われました。
For(int i=0; i<Limit;i++)
{
//code
}
For(int i=Limit-1; i >=0; i--)
{
//code
}
一部の人々がこれを使用することを推奨する理由がわかりません。彼らの議論は
「インクリメンタル 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 時間を消費している場合、私は最後の方法を好みます。