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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Zhanik
0 / 0 / 0
Регистрация: 14.06.2012
Сообщений: 12
#1

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

15.09.2013, 18:35. Просмотров 961. Ответов 8
Метки нет (Все метки)

Доброго времени суток, уважаемые форумчане! Помогите решить проблему с 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 делаю, программа первый раз дает выбор, а дальше все делает по очередности.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.09.2013, 18:35
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Чем можно заменить Switch -- case ? (C++):

Оптимальная конструкция switch-case-while / while-switch-case - C++
Имеется конструкция типа: switch() { case 1: while() { ... }

Можно ли как-то заставить сработать одновременно все case у оператора switch? - C++
Вопрос в заголовке темы:)

Чем заменить switch - C++
Подскажите пожалуйста , имеется вот такая конструкция char *bufOut = new char; // Адрес буфера для присылаемых записей. ...

Switch case внутри switch case - C++
Привет всем! Нужна помощь. Пишу калькулятор с консольным меню. Так вот, используется цикл while, внутри которого у меня switch...

switch-case, как писать в самом case - C++
Такс дело вот в чём,прога работает всё хорошо,вот только мне не нравится как записваю страны в кейсе,можно ли каким-нибудь образом писать в...

Switch + case - C++
Суть задания: Задан шифр книги из библиотеки в виде шестизначного целого числа. Определить к какому подразделу ...

8
Flikt
0 / 0 / 0
Регистрация: 15.09.2013
Сообщений: 4
15.09.2013, 18:38 #2
Просто засунь это все в цикл do { } while( условие )
условие любое например while (k!=10). Можешь сделать еще один кейс- закончить программу и там в нем добавить строчку k=10. тогда после выбора этого пункта программа будет закрываться когда тебе нужно.
0
Genn55
368 / 215 / 41
Регистрация: 26.12.2012
Сообщений: 708
15.09.2013, 18:40 #3
Делайте через
C++
1
if
C++
1
else
0
Zhanik
0 / 0 / 0
Регистрация: 14.06.2012
Сообщений: 12
15.09.2013, 18:42  [ТС] #4
Цитата Сообщение от Flikt Посмотреть сообщение
Просто засунь это все в цикл do { } while( условие )
условие любое например while (k!=10). Можешь сделать еще один кейс- закончить программу и там в нем добавить строчку k=10. тогда после выбора этого пункта программа будет закрываться когда тебе нужно.
Теперь без прерывный цикл, который повторяет выбор(((
0
Flikt
0 / 0 / 0
Регистрация: 15.09.2013
Сообщений: 4
15.09.2013, 18:45 #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);
0
Zhanik
0 / 0 / 0
Регистрация: 14.06.2012
Сообщений: 12
15.09.2013, 18:50  [ТС] #6
Цитата Сообщение от Genn55 Посмотреть сообщение
Делайте через
C++
1
if
C++
1
else
Тут тоже как и через switch case

Добавлено через 4 минуты
0
gazlan
3132 / 1908 / 285
Регистрация: 27.08.2010
Сообщений: 5,132
Записей в блоге: 1
15.09.2013, 18:52 #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;
      }
   }
}
1
Zhanik
0 / 0 / 0
Регистрация: 14.06.2012
Сообщений: 12
15.09.2013, 18:53  [ТС] #8
Спасибо Огромное!!!
0
Genn55
368 / 215 / 41
Регистрация: 26.12.2012
Сообщений: 708
15.09.2013, 19:00 #9
gazlan так красивее.Возьму на заметку.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.09.2013, 19:00
Привет! Вот еще темы с ответами:

Switch-case - C++
Можно ли так писать? switch (simvol) { case (('(') or ('1') or ('2') or ('3') or ('4') or ('5') or ('6') or ('7') or ('8')...

Switch - Case - C++
Составить программу, определяющую результат гадания на ромашке («любит–не любит– плюнет–поцелует–к сердцу прижмёт–к чёрту пошлёт»), взяв...

Switch (Case) - C++
У меня есть программа, в ней по сути 2 подпрограммы, как сделать что бы при включении программы было меню выбора какое задание выполнять ? ...

case-switch - C++
Вот то задание что с case-switch надо сделать помогите знаю что задание дурное


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

Или воспользуйтесь поиском по форуму:
9
Yandex
Объявления
15.09.2013, 19:00
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru