次の Java コードはコンパイルされません。
int a = 0;
if(a == 1) {
int b = 0;
}
if(a == 1) {
b = 1;
}
なんで?b
最初に宣言せずに1 を代入するプログラムにつながるコード パスは存在しません。
b
の変数スコープが最初のステートメントに限定されている可能性があることに気づきましたがif
、その理由はわかりません。b
パフォーマンスを向上させるために、不必要に宣言したくない場合はどうすればよいですか? 宣言後に変数を未使用のままにしておくのは好きではありません。
(2 番目のステートメントで単純に b を宣言することができないと主張したいif
場合があります。その場合は、別の場所でループに入る可能性があると想像してください。)