0

次の 2 つのコード スニペットの違いを教えてください。

int i = 0;
for(i; i < test; i++) {...}

for(int i = 0; i < test; i++) {...}

i-increment 変数を初期化するこれらの方法に違いはありますか? それは何かに影響しますか?

4

4 に答える 4

5

違いは、変数のスコープですi

最初のものでiは for ループの外側に表示され、2 番目のものでは表示されません。

于 2012-12-17T15:19:00.290 に答える
1

for ループ スコープの外側で i 変数を使用できる場合。場合によっては、そうすることができません。for ループ スコープでのみ使用できます。

于 2012-12-17T15:19:21.253 に答える
1

どちらの場合も、変数は 1 回定義されています (重大なパフォーマンスやメモリの問題はありません)。違いは、範囲と表現にあります。最初のケースでは、ステートメントiの範囲外で利用可能になります。for

最初のケースは、たとえば、要素の特定のインデックスを見つけたい場合 (このアプローチよりも優れた代替手段が存在する場合)、または特定の条件が満たされるまで繰り返し処理を行いたい場合に役立ちます。 index でループが停止しました。

于 2012-12-17T15:20:26.060 に答える
0

2 つ目は慣用句です。最初のものはそうではなく、最小の驚きの原則に違反しています。

ループiの前後にアクセスする必要がある場合にのみ、2 番目のものを使用してください。forただし、このコードには、そうであることを示唆するものは何もありません。

于 2012-12-17T15:18:32.127 に答える