Форум программистов, компьютерный форум CyberForum.ru

объединение case-ов - C++

Восстановить пароль Регистрация
 
Cee K
1 / 1 / 0
Регистрация: 05.04.2012
Сообщений: 46
01.05.2012, 20:47     объединение case-ов #1
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
case 2: 
        {
           int n=input_pos();
           printf("Внутреннее представление:%s\n",DecToBin(var,str));
           printf("Сдвиг исходного числа на %d разряда(ов) вправо: %s\n",n,DecToBin(ToTheRight(var,n),str));
           break;
        }
    case 3:
        {
          int n=input_pos();
          printf("Внутреннее представление: %s\n",DecToBin(var,str));
          printf("Сдвиг исходного числа на %d разряда влево: %s\n",n,DecToBin(ToTheLeft(var,n),str));
          break;
        }
у кейсов все почти одинаково кроме одной вызываемой функции, подскажите как их объединить,
как я понимаю должно быть что-то вроде
case2:
case3:
общая часть
if ( не могу понять что здесь писать) { пункт 2} else {пункт 3}
break;
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.05.2012, 20:47     объединение case-ов
Посмотрите здесь:

Case C++
Case C++
C++ If и case
C++ switch-case, как писать в самом case
C++ в case 7 - нужно сделать поиск по номеру группы, а в case 6 сортировку по имени
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Toshkarik
 Аватар для Toshkarik
1139 / 856 / 50
Регистрация: 03.08.2011
Сообщений: 2,381
Завершенные тесты: 1
01.05.2012, 20:51     объединение case-ов #2
Вопрос - зачем? Зачем создавать лишнее ветвление?
Cee K
1 / 1 / 0
Регистрация: 05.04.2012
Сообщений: 46
01.05.2012, 20:52  [ТС]     объединение case-ов #3
требование преподавателя.
да и памяти наверное меньше потребует
Toshkarik
 Аватар для Toshkarik
1139 / 856 / 50
Регистрация: 03.08.2011
Сообщений: 2,381
Завершенные тесты: 1
01.05.2012, 21:02     объединение case-ов #4
Мда, и зачем тогда вообще использовать switch, странный препод. Памяти точно использоваться меньше не будет, а вот лишнее ветвление точно будет.
В case фигурные скобки не нужны.
C
1
2
3
4
5
6
7
8
9
    case 2:
    case 3:
          int n=input_pos();
          printf("Внутреннее представление: %s\n",DecToBin(var,str));
          if ( val == 2 )
             printf("Сдвиг исходного числа на %d разряда(ов) вправо: %s\n",n,DecToBin(ToTheRight(var,n),str));
          else
             printf("Сдвиг исходного числа на %d разряда влево: %s\n",n,DecToBin(ToTheLeft(var,n),str));
          break;
Cee K
1 / 1 / 0
Регистрация: 05.04.2012
Сообщений: 46
01.05.2012, 21:29  [ТС]     объединение case-ов #5
он немного быдлокодер,
спасибо вам,
Toshkarik,
Yandex
Объявления
01.05.2012, 21:29     объединение case-ов
Ответ Создать тему
Опции темы

Текущее время: 23:47. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru