Я понимаю, что блок определяет область действия переменной.И пустые блоки внутри метода предназначены для установки области видимости.Но почему пустые блоки внутри методов, инициализирующих переменные, также отличаются от блоков, используемых с циклами и т. Д.
class A{
public static void main(String args[]){
int a;
int b:
{
a = 10;
}
for(int i = 0; i < 1; i++){
b = 20;
}
System.out.println(b); //error here
System.out.println(a);
// doesnt give error and prints 10. why?
}
}
Мой вопрос: почему свойства пустого блока внутри метода не похожи на блоки, используемые с циклами илиусловные блоки и т. д.