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