Простите, мне показалось, что разговор начал Вас раздражать. Если так, давайте прекратим. Просто не отвечайте на этот пост и я больше не буду писать. Абсолютно не хочу с Вами ссориться, поверьте. Так что, если разговор стал неприятен - прекращаем.
Пока же отвечу.
Green пишет:
Разница в том что мы не можем инициализировать локальную переменную.
В каком из блоков не можем? В switch - да, не можем. А в обычном блоке? См. #34 - тоже оказывается не можем, если там метки и goto не по уму расставлены! Так я Вас просил показать разницу, а Вы мне сходство показываете.
Сходство-то понятно: в любом блоке нельзя инициализировать локальную переменную, если блок построен так, что инициализация может не выполниться. Это общее правило, оно ни от чего не зависит.
А вот разница по-прежнему непонятна :-(
Так что зря Вы не хотите видеть меток и goto. Разница между обычным блоком и switch только в том, что в switch goto уже есть, а в обычном блоке их ещё вставить ручками надо - но это именно синтаксический сахар.
ОК, прекращаем. Меня тут очень сильно отвлекают, поэтому отвечать приходится наскоками.)
Да, согласен, в аналогичном примере с goto всё верно.
Так же как и то, что многие компиляторы при этом фиксируют ошибку.
Считаю что все мои пояснения были верными, в т.ч и самое первое, хоть что бы Вы мне не говорили о деревьях.)
Удалил свою нетрезвую ахинею.
Простите, мне показалось, что разговор начал Вас раздражать. Если так, давайте прекратим. Просто не отвечайте на этот пост и я больше не буду писать. Абсолютно не хочу с Вами ссориться, поверьте. Так что, если разговор стал неприятен - прекращаем.
Пока же отвечу.
В каком из блоков не можем? В switch - да, не можем. А в обычном блоке? См. #34 - тоже оказывается не можем, если там метки и goto не по уму расставлены! Так я Вас просил показать разницу, а Вы мне сходство показываете.
Сходство-то понятно: в любом блоке нельзя инициализировать локальную переменную, если блок построен так, что инициализация может не выполниться. Это общее правило, оно ни от чего не зависит.
А вот разница по-прежнему непонятна :-(
Так что зря Вы не хотите видеть меток и goto. Разница между обычным блоком и switch только в том, что в switch goto уже есть, а в обычном блоке их ещё вставить ручками надо - но это именно синтаксический сахар.
ОК, прекращаем. Меня тут очень сильно отвлекают, поэтому отвечать приходится наскоками.)
Да, согласен, в аналогичном примере с goto всё верно.
Так же как и то, что многие компиляторы при этом фиксируют ошибку.
Считаю что все мои пояснения были верными, в т.ч и самое первое, хоть что бы Вы мне не говорили о деревьях.)
Удалил свою нетрезвую ахинею.