Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.08.2020, 08:25   #1
BLACK_RAIN
Форумчанин
 
Регистрация: 13.02.2012
Сообщений: 867
По умолчанию выбор из множества вариантов в case

на delphi можно написать так:
Код:
case n of
0..999:
begin
end;
end;
То есть, для значений от 0 до 999 выполняем одно и то же действие.
А на С++ пишется как-то так:
Код:
switch (n)
{
    case 0:
    case 1:
    case 2:
.....
    case 999:
    {
    }
}
То есть, надо копипастить все 999 вариантов.
Как задать это без копипаста?
BLACK_RAIN вне форума Ответить с цитированием
Старый 08.08.2020, 08:37   #2
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,493
По умолчанию

Через switch/case - никак.
waleri вне форума Ответить с цитированием
Старый 08.08.2020, 08:39   #3
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию

Например в GCC есть расширение (https://gcc.gnu.org/onlinedocs/gcc/Case-Ranges.html), позволяющее писать:
Код:
switch (n)
{
    case 0 ... 999:
    {
    }
}
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 08.08.2020, 09:06   #4
BLACK_RAIN
Форумчанин
 
Регистрация: 13.02.2012
Сообщений: 867
По умолчанию

Хотите сказать, что за 25 лет никто не додумался ввести такую простую фишку в стандарт самого популярного языка программирования в мире?
BLACK_RAIN вне форума Ответить с цитированием
Старый 08.08.2020, 19:50   #5
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,493
По умолчанию

Цитата:
Сообщение от BLACK_RAIN Посмотреть сообщение
Хотите сказать, что за 25 лет никто не додумался ввести такую простую фишку в стандарт
Хочу сказать что за 25 лет никому это не понадобилось.
Воспользуйтесь if-ом.
waleri вне форума Ответить с цитированием
Старый 09.08.2020, 11:08   #6
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 16,219
По умолчанию

Цитата:
Сообщение от waleri Посмотреть сообщение
Хочу сказать что за 25 лет никому это не понадобилось
Если надо проверить множество диапазонов то вполне себе такая конструкция окажется удобнее, чем куча if.
Так-то можно вообще от switch отказаться, зачем он, если есть универсальный if?
Arigato вне форума Ответить с цитированием
Старый 09.08.2020, 17:03   #7
Алексей1153
фрилансер
Форумчанин
 
Регистрация: 11.10.2019
Сообщений: 947
По умолчанию

Цитата:
Сообщение от BLACK_RAIN Посмотреть сообщение
Как задать это без копипаста?
Код:
    int n=555;
    do
    {
        if(n>=0 && n<=999)
        {

        }break;
        
        if(n>=1234 && n<=10000)
        {

        }break;
    }while(0);
Алексей1153 вне форума Ответить с цитированием
Старый 09.08.2020, 21:03   #8
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,493
По умолчанию

Цитата:
Сообщение от Arigato Посмотреть сообщение
Если надо проверить множество диапазонов
Если да кабы...
Здесь был указан один диапазон и задан вопрос про switch/case.
waleri вне форума Ответить с цитированием
Старый 09.08.2020, 22:41   #9
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 16,219
По умолчанию

switch предполагает множество проверок, один это для примера.
Arigato вне форума Ответить с цитированием
Старый 10.08.2020, 10:59   #10
BLACK_RAIN
Форумчанин
 
Регистрация: 13.02.2012
Сообщений: 867
По умолчанию

Цитата:
Сообщение от waleri Посмотреть сообщение
Здесь был указан один диапазон и задан вопрос про switch/case.
какой смысл использовать switch для одного диапазона?
BLACK_RAIN вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перемещение из case 1 в case 2(switch(), язык Си) Павел_95 Помощь студентам 13 11.01.2013 14:18
выбор возможных вариантов Asante Microsoft Office Excel 2 02.12.2011 16:34
Через множества заданы сорта роз,выращиваемых цветоводами. Ввод множества с клавиатуры,сравнение множеств BAMbarBIO Паскаль, Turbo Pascal, PascalABC.NET 5 31.05.2011 13:17
Си/Си++ Выбор подмножеств из числового множества Маришка_Курносова Помощь студентам 4 11.09.2010 17:43
case(выбор) c++ Runner Помощь студентам 13 28.04.2010 23:56