До тих пір, як я пам'ятаю, я уникав використання переключення оператора перемикання. Насправді я не можу згадати, щоб він коли-небудь входив у мою свідомість як можливий спосіб робити речі, оскільки це було просвердлено мені в голову рано, що це було не що інше, як помилка в заяві перемикача. Однак сьогодні я зіткнувся з деяким кодом, який використовує його при розробці дизайну, і мене одразу задало питання, що всі в громаді думають про пропуск транзакції.
Це щось, що мова програмування явно не повинна дозволити (як, наприклад, C #, хоча вона забезпечує вирішення) або це особливість будь-якої мови, достатньо потужної, щоб залишити її в руках програміста?
Редагувати: Я не був достатньо конкретним щодо того, що я мав на увазі під пропадом. Я багато використовую цей тип:
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, він буде робити все в операторі комутатора. Я бачив це за допомогою дизайну, і я просто не знаю, чи згоден я, що заяви переключення повинні використовуватися таким чином. Я думаю, що перший приклад коду дуже корисний і безпечний. Друга видається небезпечною.