Перейти к содержимому

Как в case задать диапазон

  • автор:

В 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, Action>> / List, Action>>

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *