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

Чем можно заменить Switch -- case ? - C++

Восстановить пароль Регистрация
 
Zhanik
0 / 0 / 0
Регистрация: 14.06.2012
Сообщений: 12
15.09.2013, 18:35     Чем можно заменить Switch -- case ? #1
Доброго времени суток, уважаемые форумчане! Помогите решить проблему с case. В этой программе нужно создать множественный выбор, который после 1-го выбора не должен останавливаться.
Вот мой код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
switch (k){
 
    case 0:
        cout <<"Chose the size of Matrix: ";
        cin >>n;
        creat_matr(a, n);
        break;
    case 1:
        cout <<"Please, chose x and y: ";
        int x, y;
        cin >>x >> y;
        read_matr(a, x, y);
        break;
    case 2:
        cout <<"Please, chose the place and value: ";
        int b, z, v;
        cin >>b >>z >>v;
        write_matr(a, b, z, v, n);
        break;
................................
А вот результат:
0: create matrix
1: show element of matrix
2: change element of matrix
3: exit
0
Please chose the size of matrix: 4
6 9 5 4
7 8 9 6
0 0 0 0
0 0 0 0
Для продолжения нажмите любую клавишу . . .



Ну а если case без break делаю, программа первый раз дает выбор, а дальше все делает по очередности.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.09.2013, 18:35     Чем можно заменить Switch -- case ?
Посмотрите здесь:

C++ switch case
C++ Чем можно заменить выражение b=SQEARE(4,5+2,5)?
C++ Оптимальная конструкция switch-case-while / while-switch-case
C++ Switch + case
C++ switch-case, как писать в самом case
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Flikt
0 / 0 / 0
Регистрация: 15.09.2013
Сообщений: 4
15.09.2013, 18:38     Чем можно заменить Switch -- case ? #2
Просто засунь это все в цикл do { } while( условие )
условие любое например while (k!=10). Можешь сделать еще один кейс- закончить программу и там в нем добавить строчку k=10. тогда после выбора этого пункта программа будет закрываться когда тебе нужно.
Genn55
341 / 188 / 37
Регистрация: 26.12.2012
Сообщений: 658
15.09.2013, 18:40     Чем можно заменить Switch -- case ? #3
Делайте через
C++
1
if
C++
1
else
Zhanik
0 / 0 / 0
Регистрация: 14.06.2012
Сообщений: 12
15.09.2013, 18:42  [ТС]     Чем можно заменить Switch -- case ? #4
Цитата Сообщение от Flikt Посмотреть сообщение
Просто засунь это все в цикл do { } while( условие )
условие любое например while (k!=10). Можешь сделать еще один кейс- закончить программу и там в нем добавить строчку k=10. тогда после выбора этого пункта программа будет закрываться когда тебе нужно.
Теперь без прерывный цикл, который повторяет выбор(((
Flikt
0 / 0 / 0
Регистрация: 15.09.2013
Сообщений: 4
15.09.2013, 18:45     Чем можно заменить Switch -- case ? #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
do
 {
 cout<<"Введите пункт меню: ";
 cin>>k;
 switch (k){
 
    case 0:
        cout <<"Chose the size of Matrix: ";
        cin >>n;
        creat_matr(a, n);
        break;
    case 1:
        cout <<"Please, chose x and y: ";
        int x, y;
        cin >>x >> y;
        read_matr(a, x, y);
        break;
    case 2:
        cout <<"Please, chose the place and value: ";
        int b, z, v;
        cin >>b >>z >>v;
        write_matr(a, b, z, v, n);
        break;
   сase 5:
       cout<<"Нажмите Enter, чтобы завершить программу";
       getch();
       break;
  }
} while(k!=5);
Zhanik
0 / 0 / 0
Регистрация: 14.06.2012
Сообщений: 12
15.09.2013, 18:50  [ТС]     Чем можно заменить Switch -- case ? #6
Цитата Сообщение от Genn55 Посмотреть сообщение
Делайте через
C++
1
if
C++
1
else
Тут тоже как и через switch case

Добавлено через 4 минуты
gazlan
2867 / 1815 / 272
Регистрация: 27.08.2010
Сообщений: 4,919
Записей в блоге: 1
15.09.2013, 18:52     Чем можно заменить Switch -- case ? #7
Поддержу Flikt. Поместите switch в цикл, и управляйте вашим автоматом как угодно.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
while (choice >= 0)
{
   switch (choice)
   {
      case 0:
      {
         // Do smth
 
         choice = 2;
         break;
      }
      case 1:
      {
         // Do smth
 
         choice = 0;
         break;
      }
      case 2:
      {
         // Do smth
 
         choice = 1;
         break;
      }
      default:
      {
         // Do smth
 
         choice = -1;
         break;
      }
   }
}
Zhanik
0 / 0 / 0
Регистрация: 14.06.2012
Сообщений: 12
15.09.2013, 18:53  [ТС]     Чем можно заменить Switch -- case ? #8
Спасибо Огромное!!!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.09.2013, 19:00     Чем можно заменить Switch -- case ?
Еще ссылки по теме:

Чем можно заменить функцию strdup C++
C++ Чем можно заменить функцию swap?
C++ Switch case внутри switch case

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Genn55
341 / 188 / 37
Регистрация: 26.12.2012
Сообщений: 658
15.09.2013, 19:00     Чем можно заменить Switch -- case ? #9
gazlan так красивее.Возьму на заметку.
Yandex
Объявления
15.09.2013, 19:00     Чем можно заменить Switch -- case ?
Ответ Создать тему
Опции темы

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