В switch есть диапазон значений?
Диапазон написать нельзя, но можно его сымитировать таким образом, указав несколько case для одного блока:
switch (number) < case 1: case 2: case 3: case 4: case 5: //. break; case 6: case 7: case 8: case 9: case 10: //. break; >
Возможно в C#7 появилась возможность записи диапазонов, но у меня нет возможности проверить.
Отслеживать
ответ дан 22 дек 2016 в 7:21
Vladislav Khapin Vladislav Khapin
1,224 7 7 серебряных знаков 12 12 бронзовых знаков
Используй алтернативу switch — ifElse
Или сделай как примере :
int mynumbercheck = 1000; var myswitch = new Dictionary , Action> < < x =>x < 10 , () =>//Do this. >, < x =>x < 100 , () =>//Do this. >, < x =>x < 1000 , () =>//Do this. >, < x =>x < 10000 , () =>//Do this. > , < x =>x < 100000 , () =>//Do this. >, < x =>x < 1000000 , () =>//Do this. > >;
myswitch.First(sw => sw.Key(mynumbercheck)).Value();
Отслеживать
user177221
ответ дан 21 дек 2016 в 19:10
OLEG GRECHUKH OLEG GRECHUKH
151 7 7 бронзовых знаков
Dictionary не гарантирует хранение и перечисление значений в том порядке, в котором они были в него добавлены. Т.е. поведение кода из вашего примера неопределено. Если хочется предсказуемого поведения — стоит использовать List
Developing.ru
Мне нужно, чтобы если temp находится в диапазоне от 10 до 100, то Str присваивалось «12345».
Пишу 10-100, компилятор не выдаёт ошибку, но и switch правильно не работает. Как правильно писать?
BulldozerBSG Сообщения: 263 Зарегистрирован: 09 янв 2010, 04:14 Контактная информация:
Switch для диапазона не годиться, это вам не паскаль. Используйте if для проверки вхождения в диапазон
dmitry1208197320 Сообщения: 16 Зарегистрирован: 13 янв 2010, 17:48
Спасибо, да жаль, что нет такой возможности, я так привык в Delphi к такому удобству.
3 сообщения • Страница 1 из 1
- Системное и прикладное программирование
- ↳ Win API, Shell..
- ↳ C и C++
- ↳ Delphi и Pascal
- ↳ Программирование на Pascal и Delphi (Object Pascal)
- ↳ Все вопросы ООП
- ↳ Компоненты в Delphi
- ↳ Delphi и WinAPI, ActiveX и OLE , COM и DCOM, и т.д
- ↳ Java
- ↳ MS Office и VB(A).
- ↳ Ассемблер
- WEB программирование
- ↳ JScript, VBScript, DHTML.
- ↳ Perl, PHP, ASP .
- Некатегоризированное
- ↳ Вопрошайка
- ↳ SQL
- ↳ Алгоритмы
- ↳ Дизайн и графика
- Администрирование
- ↳ Apache, IIS.
- ↳ Операционные системы
- Работа
- ↳ Вакансии и заказы для программистов
- ↳ Поиск работы и заказов.
- ↳ Решите мне задачку
- ↳ задачи на Паскале и Delphi
- ↳ задачи на C и C++
- ↳ задачи на Basic и Visual Basic (VB)
- Прочее
- ↳ Жалобная книга
- ↳ Флейм.
Saved searches
Use saved searches to filter your results more quickly
Cancel Create saved search
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.
cpp-ru / ideas Public
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
switch с диапазоном значений #342
apolukhin opened this issue Mar 31, 2021 · 2 comments
switch с диапазоном значений #342
apolukhin opened this issue Mar 31, 2021 · 2 comments
duplicate This issue or pull request already exists
Comments
apolukhin commented Mar 31, 2021
Перенос предложения: голоса +22, -2
Автор идеи: Игорь Шаповал
Работая с switch мы иногда хотим, чтобы ветка выполнилась, если условия лежит
в диапазоне значений. Для этого мы должны писать следующее
switch (value) < case 0: case 1: case 2: cout «in range 0. 2« break; case 3: case 4: case 5: cout «in range 3. 5« break; default: cout «out the range«
В GCC есть расширение, которое позволяет указывать в case диапазон значений
switch (value) < case 0 . 2: cout «range in 0. 2« break; case 3 . 5: cout «range in 3. 5« break; default: cout «out the range«
Было бы классно добавить в стандарт С++.
The text was updated successfully, but these errors were encountered:
Как в case задать диапазон
Форумчанин
Регистрация: 16.01.2008
Сообщений: 288
Диапазон оператора switch
Подскажите пожалуйсто, как сделать, что-бы работал такой код.
int a; switch (a)
Тупой студент
Форумчанин
Регистрация: 12.05.2007
Сообщений: 614
эм. наверна только так
switch (a)
case 1:
case 2:
case 3:
.
.
case 100:
cout break;
default: cout break;
>
для таких случаев нада if использовать
Форумчанин
Регистрация: 16.01.2008
Сообщений: 288
А в паскале вроде можно с диапазоном использовать case. В с++ это нельзя получается?
Eclipse Foundation
Регистрация: 19.09.2007
Сообщений: 2,619
В case можно писать не одну строку кода, а сколько хотите, если Вы об этом.
Участник клуба
Регистрация: 08.10.2007
Сообщений: 1,185
Типа такого:
case a of 1..100: ///////////// end;
не получится, поэтому надо if’ами. Ну или case 1: case 2: case 3.
| Похожие темы | ||||
| Тема | Автор | Раздел | Ответов | Последнее сообщение |
| Как написать в коде чтобы диапазон А копировался как значение в диапазон В. | Dorvir | Microsoft Office Excel | 12 | 23.05.2008 22:11 |
| диапазон времени | chekanoff | БД в Delphi | 34 | 02.03.2008 01:28 |
| Карточная колода при помощи Switch на С++ | Amen | Общие вопросы C/C++ | 1 | 28.02.2008 08:24 |
| Как указать диапазон чисел? | Inbox | Общие вопросы Delphi | 2 | 29.06.2007 01:21 |
| неразрывный диапазон | zetrix | Microsoft Office Excel | 0 | 31.10.2006 07:26 |