- ループの中の変数宣言

ゲスト (SSO)

Javaでループ内でのみ使いたい変数(str1)の宣言についてなのですが、
while(i++
}
とすると、ループの回数分str1の割り当て、開放(?)を行っていてあまり効率がよくないように思えます。
String
while(i++
}
とすると、str1の割り当ては1回で済み、早いような気がします。しかし、変数のスコープが一段広くなってしまいます。
どちらのコーディングがいいのでしょうか?
コメント

- 3:tetsuhon
- 2007/09/26 18:39
変数str1のスコープが気になるなら、その周りを
中括弧でくくってみるのはどうでしょうか。
{
}

- 4:ゲスト
- 2007/09/26 18:59
最近のコンパイラは文字列の追加を、勝手にStringBufferやStringBuilderに
かえてくれます。
上のほうが自然でいいです。
細かい最適化を最初から考える必要はないです。
もちろん、効率の悪いアルゴリズムと使ってもいいといった話ではありません。

- 5:ゲスト (SSO)
- 2007/09/27 00:04
皆さんありがとうございます。
sheileさんの言うとおりにコンパイラの最適化を期待して、上の例を使いたいと思います。
#文字列の追加(連結)に関しては表題とはすこし話が違います。
前へ 1 次へ![]()
コメントする
[block]から[/block]までの範囲はブロック表示されます。
部分的に目立たせたい時や、引用などにお使いください。
[code]から[/code]までの範囲は等幅表示されます。
ソースコードや設定ファイルの記述などにお使いください。






最近のコンパイラは優秀なので、それぐらいの内容であれば最適化する際に
ループの外に出してくれるはずです。
なので、人間に理解しやすい前者の方法をオススメしておきます。