Почему тела разных корпусов не попадают автоматически в свою область?Например, если бы я сделал это:
switch(condition) {
case CONDITION_ONE:
int account = 27373;
case CONDITION_TWO:
// account var not needed here
case CONDITION_THREE:
// account var not needed here
case CONDITION_FOUR:
int account = 90384;
}
, компилятор жаловался бы на переопределения локальной переменной.Я понимаю, что мог бы сделать это:
switch(condition) {
case CONDITION_ONE: {
int account = 27373;
}
case CONDITION_TWO: {
// account var not needed here
}
case CONDITION_THREE: {
// account var not needed here
}
case CONDITION_FOUR: {
int account = 90384;
}
}
, чтобы поместить блок вокруг каждого набора выполняемых операторов, чтобы поместить каждую переменную account
в ее собственную область.Но почему язык не делает это для меня?
Почему вы хотите объявить локальную переменную в теле CONDITION_ONE
, а затем использовать ее в CONDITION_TWO
?Это похоже на УЖАСНУЮ идею, которая должна быть явно запрещена, а не явно разрешена.