| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > .NET для новичков > Switch ... case |
| Автор: Lexicss 27.8.2009, 12:15 |
| Оператор Switch .. case Может ли этот оператор выполняться на условии диапазона значений например Switch(x) ... case 12 .. case 15? (т.е. выполнить при условии если x=12 или 13, или 14, или 15) В MSDN написано что вроде как не поддерживает неявное "проваливание". Но если всё-таки надо, кто как выкручивается? Можно делить на интервал, но это подходит если интервал одинаковый. Какие ещё есть методы? |
| Автор: azesmcar 27.8.2009, 12:26 | ||
Вообще-то это делается так
но я не думаю что на таких больших интервалах имеет смысл применять switch. |
| Автор: Akina 27.8.2009, 12:27 |
| язычок назовём? потому как в Jscript фортель, который показал azesmcar, не пройдёт... |
| Автор: ДобренькийПапаша 27.8.2009, 14:25 |
| В C# можно также, насколько я помню. |
| Автор: azesmcar 27.8.2009, 14:33 |
Так я же для C# писал |
| Автор: Lexicss 27.8.2009, 16:35 |
| azesmcar, по поводу перечисления понятно. А если у меня диапазон от 101 до 200. Неразумно все 100 case перечислять. Так какие ещё варианты, заменить все case на if что ли? :( |
| Автор: Rohoss 27.8.2009, 17:09 | ||||
Так не перечесляйте
|
| Автор: neiron 28.8.2009, 09:03 | ||
Комбинируйте switch с if. Как то:
Правда, часто такие конструкции запутывают очень сильно, но иногда наоборот код более читаемым делают. |
| Автор: nikitao 28.8.2009, 10:47 |
| Lexicss, в C# нет поддержки диапазонов. В описанной вами задаче лучше всего последовотельно рассматривать необходимые диапазоны через if ы. И не смешивайте вместе if и switch - это отрицательно сказывается на читабельности кода. |
| Автор: Lexicss 31.8.2009, 17:13 |
| Короче в C# этого нету, вместо switch остаётся только использовать if. Спасибо всем ктоучавствовал в обсуждении. |