Java переменная область действия в операторе if [duplicate]

На этот вопрос уже есть ответ:

Объявление бесполезной локальной переменной 2 ответа Однострочный цикл с обязательной парой скобок в Java 3 ответа

Я получил ошибку компиляции для следующего кода:

if(true)
    int a = 10;
else
    int b = 20;

Если я изменю код на следующий, то ошибки компиляции не будет:

if(true) {
    int a = 10;
}
else {
    int b = 20;
}

Почему первый синтаксис неверен и из какого стандарта языка?

Ответы на вопрос(5)

Ваш ответ на вопрос