ホームページ >Java >&#&チュートリアル >プログラミングでは変数は常にループの外で宣言されるべきですか?
宣言を行う場合によく観察される動作ループの外の変数は機能するように見えますが、外部宣言の必要性について疑問が生じます。この問題を詳しく調べるために、2 つのコード例を調べてみましょう:
String str;
while (条件) {
str = calculateStr(); ...
}
while (条件) {
String str = calculateStr(); ...
}
最初の例は、変数がループの外で宣言されており、問題なく機能することがわかっています。ただし、変数がループ内で定義されている 2 番目の例は、多くの場合、危険または間違っているというラベルが付けられています。これにより、変数の外部宣言は必要ですか?
この質問に対する答えは、変数は次のとおりであると強調することです。可能な限り最小のスコープで宣言する必要があります。その理由を理解するために、str がループの外ではおそらく使用されない例のシナリオを考えてみましょう。そうであった場合、ループ内で宣言することはコンパイル エラーのため実現できません。
したがって、str はループのコンテキスト内にのみ存在するため、str の可能な最小スコープはそのループ内に存在します。したがって、それに応じて宣言する必要があります。
このルールの唯一の例外は、パフォーマンスの最大化が重要である状況です。最後のクロックサイクルまで。このような場合、各ループ反復内でオブジェクトを再作成するのではなく、外側のスコープでオブジェクトをインスタンス化し、それを再利用することが検討される可能性があります。
ただし、提供されている例では、文字列の不変性のため、この最適化は無関係です。ジャワ。すべてのループ反復では、新しい str インスタンスの作成とその後の破棄が必要になり、外部宣言による潜在的な最適化が排除されます。
要約すると、可能な限り最小のスコープ内で変数を宣言するのが正しい方法です。パフォーマンスを最適化するには、すべてのクロック サイクルを絞り出すのが魅力的かもしれませんが、コードの品質に焦点を当て、適切なガイドラインに従うほうが賢明です。ベンチマークにより、アルゴリズムの最適化が必要な領域が明らかになり、大規模なコードの調整やハックが不要になります。
以上がプログラミングでは変数は常にループの外で宣言されるべきですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。