Следующий код Java не компилируется.
int a = 0;
if(a == 1) {
int b = 0;
}
if(a == 1) {
b = 1;
}
Почему? Не может быть никакого кодового пути, ведущего к тому, что программа назначает 1 на b
, не объявляя ее в первую очередь.
Мне пришло в голову, что область видимости переменной b
может быть ограничена первым оператором if
, но тогда я бы не понял почему. Что делать, если я действительно не хочу объявлять b
без необходимости, чтобы повысить производительность? Мне не нравится, что переменные остаются неиспользованными после объявления.
(Возможно, вы захотите спорить, иначе я могу просто объявить b во втором выражении if
, в этом случае просто представьте, что он может быть в петле в другом месте.)