ループの前とループ内で変数を宣言することの違いは何ですか? 質問する

ループの前とループ内で変数を宣言することの違いは何ですか? 質問する

一般的に、ループ内で繰り返し宣言するのではなく、ループの前に使い捨て変数を宣言すると、パフォーマンスに何か違いが出るのだろうかといつも疑問に思っていました。Javaでの(まったく無意味な)例:

a)ループ前の宣言:

double intermediateResult;
for(int i=0; i < 1000; i++){
    intermediateResult = i;
    System.out.println(intermediateResult);
}

b)ループ内での宣言(繰り返し):

for(int i=0; i < 1000; i++){
    double intermediateResult = i;
    System.out.println(intermediateResult);
}

ab のどちらが良いでしょうか?

繰り返し変数宣言 (例b )は理論上はオーバーヘッドを増加させると思われますが、コンパイラは十分に賢いので問題にはならないと思います。例bには、よりコンパクトで、変数のスコープが使用される場所に限定されるという利点があります。それでも、私は例aに従ってコーディングする傾向があります。

編集:私は特に Java のケースに興味があります。

ベストアンサー1

ab のどちらが良いでしょうか?

パフォーマンスの観点からは、それを測定する必要があります。(そして私の意見では、違いを測定できる場合、コンパイラはあまり良くありません)。

メンテナンスの観点からは、b の方が優れています。変数の宣言と初期化は、できるだけ狭い範囲で同じ場所で行います。宣言と初期化の間に大きな穴を空けたり、必要のない名前空間を汚染したりしないでください。

おすすめ記事