До тех пор, пока я помню, я избегал использования инструкции switch switch. На самом деле, я не могу вспомнить, как он когда-либо входил в мое сознание как возможный способ сделать что-то, потому что он был пробурен в голову на ранней стадии, что это не что иное, как ошибка в инструкции switch. Тем не менее, сегодня я столкнулся с некоторым кодом, который использует его по дизайну, который заставил меня сразу же подумать о том, что все в сообществе думают о прохождении инструкции switch.
Является ли это тем, что язык программирования должен явно не разрешать (например, С#, хотя он предоставляет обходное решение), или это особенность любого языка, достаточно мощного для того, чтобы уйти в руки программиста?
Edit: Я не был достаточно специфичен для того, что я имел в виду под падением. Я использую этот тип много:
switch(m_loadAnimSubCt){
case 0:
case 1:
// Do something
break;
case 2:
case 3:
case 4:
// Do something
break;
}
Однако меня беспокоит что-то вроде этого.
switch(m_loadAnimSubCt){
case 0:
case 1:
// Do something but fall through to the other cases
// after doing it.
case 2:
case 3:
case 4:
// Do something else.
break;
}
Таким образом, когда случай равен 0, 1, он будет делать все в инструкции switch. Я видел это по дизайну, и я просто не знаю, согласен ли я, что инструкции switch должны использоваться таким образом. Я думаю, что первый пример кода очень полезен и безопасен. Второй кажется опасным.