Сообщение Re: семантика switch/case от 17.12.2015 9:42
Изменено 17.12.2015 9:44 Sheridan
Здравствуйте, _hum_, Вы писали:
__>Всегда полагал, что семантика switch/case/case/... аналогична if/if/if/... без break-а и if/else if/else if/... c break-ом. А тут решил не ставить break "в конце ветки выбора", и опля — сюрприз. Так что, товарищи, кто еще так же, как и я, заблуждался, будьте внимательны:
Надо было быть внимательным еще в школе, когда бэйсик на z80 теребил
__>p.s. Вопрос к знатокам — зачем такая неочевидная и "техническая" семантика?
С чего это она неочевидная? Всё вполне логично тут. Есть if и есть switch и они обязаны себя вести по разному, ибо в противном случае чтото из них не нужно.
switch полезен тем, что можно писать так, что код сможет выполняться не полностью. Например каттотак
На if'ах забодаешься подобное кратко писать.
__>Всегда полагал, что семантика switch/case/case/... аналогична if/if/if/... без break-а и if/else if/else if/... c break-ом. А тут решил не ставить break "в конце ветки выбора", и опля — сюрприз. Так что, товарищи, кто еще так же, как и я, заблуждался, будьте внимательны:
Надо было быть внимательным еще в школе, когда бэйсик на z80 теребил

__>p.s. Вопрос к знатокам — зачем такая неочевидная и "техническая" семантика?
С чего это она неочевидная? Всё вполне логично тут. Есть if и есть switch и они обязаны себя вести по разному, ибо в противном случае чтото из них не нужно.
switch полезен тем, что можно писать так, что код сможет выполняться не полностью. Например каттотак
swith(flag)
{
case doFullWork: { checkLastWork(); clearTemp(); }
case doOptimizedWork: { clearCaches(); }
case justDoIt: { doWork(); }
}
На if'ах забодаешься подобное кратко писать.
Re: семантика switch/case
Здравствуйте, _hum_, Вы писали:
__>Всегда полагал, что семантика switch/case/case/... аналогична if/if/if/... без break-а и if/else if/else if/... c break-ом. А тут решил не ставить break "в конце ветки выбора", и опля — сюрприз. Так что, товарищи, кто еще так же, как и я, заблуждался, будьте внимательны:
Надо было быть внимательным еще в школе, когда бэйсик на z80 теребил
__>p.s. Вопрос к знатокам — зачем такая неочевидная и "техническая" семантика?
С чего это она неочевидная? Всё вполне логично тут. Есть if и есть switch и они обязаны себя вести по разному, ибо в противном случае чтото из них не нужно.
switch полезен тем, что можно писать так, что код сможет выполняться не полностью. Например каттотак
На if'ах забодаешься подобное кратко писать.
__>Всегда полагал, что семантика switch/case/case/... аналогична if/if/if/... без break-а и if/else if/else if/... c break-ом. А тут решил не ставить break "в конце ветки выбора", и опля — сюрприз. Так что, товарищи, кто еще так же, как и я, заблуждался, будьте внимательны:
Надо было быть внимательным еще в школе, когда бэйсик на z80 теребил

__>p.s. Вопрос к знатокам — зачем такая неочевидная и "техническая" семантика?
С чего это она неочевидная? Всё вполне логично тут. Есть if и есть switch и они обязаны себя вести по разному, ибо в противном случае чтото из них не нужно.
switch полезен тем, что можно писать так, что код сможет выполняться не полностью. Например каттотак
switch(flag)
{
case doFullWork: { checkLastWork(); clearTemp(); }
case doOptimizedWork: { clearCaches(); }
case justDoIt: { doWork(); }
}
На if'ах забодаешься подобное кратко писать.