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

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

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

Switch - case - C++

25.03.2014, 13:41. Просмотров 732. Ответов 15
Метки нет (Все метки)

Доброго времени суток. Сделал меню по такой схеме:
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
switch(a)
{
    case 1:
    {
       case 1:
       case 2:
       switch(aa)
       {
             case 1:
         case 2:
         case 3:
         case 4:
       }
       case 3:
       case 4:
    }
    case 2:
    {
       switch(ab)
       {
       case 1:
       case 2:
       case 3:
       case 4:
        }
    }
}
Как мне сделать так, чтоб я мог возвращаться с высших уровней switch-case'a ни низшие.
Например, я выбрал "a", потом выбрал "aa", и мог возвратиться к выбору "a"?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.03.2014, 13:41
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Switch - case (C++):

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

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

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

switch и case - C++
Пишет, что switch не содержит case, но судя по коду - это не так... как же заставить его видеть этот case? #include <iostream> ...

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

switch i case - C++
v 4jom u menja o6ibka? i kak vivisti rezultat? # include <iostream> # include <conio.h> using namespace std; int main () ...

15
taras atavin
3570 / 1753 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
25.03.2014, 13:51 #2
По дефолту ты туда и вернёшься, так что вопрос стоит: как не вернуться из вложенного switch в case внешнего. И здесь ответ один: используй return во вложенном.
0
ValeryS
Модератор
6707 / 5116 / 482
Регистрация: 14.02.2011
Сообщений: 17,186
25.03.2014, 13:59 #3
Цитата Сообщение от sandrwe Посмотреть сообщение
C++
1
2
3
4
case 1:
   {
      case 1:
      case 2:
что ты этим хотел сказать?
0
sandrwe
0 / 0 / 0
Регистрация: 08.02.2014
Сообщений: 25
25.03.2014, 14:01  [ТС] #4
Как это должно выглядеть? "return a" что-ли?

Добавлено через 46 секунд
Забыл switch дописать
0
taras atavin
3570 / 1753 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
25.03.2014, 14:07 #5
Цитата Сообщение от sandrwe Посмотреть сообщение
Как это должно выглядеть? "return a" что-ли?
А что должна вернуть функция? Вот её значение и возвращай, иначе вывалишься из switch во внешний case. А если тебе именно этого и надо, то хоть break юзай, хоть вообще ничего не делай.
0
sandrwe
0 / 0 / 0
Регистрация: 08.02.2014
Сообщений: 25
25.03.2014, 14:10  [ТС] #6
Функция ничего не возвращает. Просто выводит на экран информацию о обьекте.
0
taras atavin
3570 / 1753 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
25.03.2014, 14:17 #7
Тогда просто
C++
1
return;
. Чтоб не вываливаться во внешний case.
0
sandrwe
0 / 0 / 0
Регистрация: 08.02.2014
Сообщений: 25
25.03.2014, 14:23  [ТС] #8
ошибка
C++
1
error: return statement with no value, in function returning 'int'
0
zss
Модератор
Эксперт С++
6517 / 6079 / 2001
Регистрация: 18.12.2011
Сообщений: 15,808
Завершенные тесты: 1
25.03.2014, 14:25 #9
Цитата Сообщение от sandrwe Посмотреть сообщение
Функция ничего не возвращает
Цитата Сообщение от sandrwe Посмотреть сообщение
in function returning 'int'
Все-таки возвращает int....
так напишите return 0;
0
taras atavin
3570 / 1753 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
25.03.2014, 14:26 #10
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
switch(a)
{
 case 1: std::cout<<"1"<<std::endl;
 switch(b)
 {
  case 1: std::cout<<"2"<<std::endl;
  case 2: std::cout<<"3"<<std::endl;
  switch(с)
  {
    case 1: std::cout<<"4"<<std::endl;
    case 2: std::cout<<"5"<<std::endl;
    case 3: std::cout<<"6"<<std::endl;
    case 4: std::cout<<"7"<<std::endl;
  }
  std::cout<<"8"<<std::endl;
  case 3: std::cout<<"9"<<std::endl;
  case 4: std::cout<<"10"<<std::endl;
 }
 std::cout<<"11"<<std::endl;
 case 2:std::cout<<"12"<<std::endl;
 switch(d)
 {
   case 1: std::cout<<"13"<<std::endl;
   case 2: std::cout<<"14"<<std::endl;
   case 3: std::cout<<"15"<<std::endl;
   case 4: std::cout<<"16"<<std::endl;
  }
  std::cout<<"17"<<std::endl;
}
std::cout<<"18"<<std::endl;
при a=1, b=2, c=3 выведет:
1
3
6
7
8
9
10
11
12
13
14
15
16
17
18, а
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
35
36
37
38
39
40
41
42
43
44
45
switch(a)
{
 case 1: std::cout<<"1"<<std::endl;
 switch(b)
 {
  case 1: std::cout<<"2"<<std::endl;
  break;
  case 2: std::cout<<"3"<<std::endl;
  switch(с)
  {
    case 1: std::cout<<"4"<<std::endl;
    break;
    case 2: std::cout<<"5"<<std::endl;
    break;
    case 3: std::cout<<"6"<<std::endl;
    break;
    case 4: std::cout<<"7"<<std::endl;
    break;
  }
  std::cout<<"8"<<std::endl;
  break;
  case 3: std::cout<<"9"<<std::endl;
  break;
  case 4: std::cout<<"10"<<std::endl;
  break;
 }
 std::cout<<"11"<<std::endl;
 break;
 case 2:std::cout<<"12"<<std::endl;
 break;
 switch(d)
 {
   case 1: std::cout<<"13"<<std::endl;
   break;
   case 2: std::cout<<"14"<<std::endl;
   break;
   case 3: std::cout<<"15"<<std::endl;
   break;
   case 4: std::cout<<"16"<<std::endl;
   break;
  }
  std::cout<<"17"<<std::endl;
  break;
}
std::cout<<"18"<<std::endl;
при тех же условиях выведет:
1
3
6
8
11
17
18.

Добавлено через 45 секунд
Цитата Сообщение от sandrwe Посмотреть сообщение
ошибка
Код C++
1
error: return statement with no value, in function returning 'int'
А кто то только что утверждал, что функция ничего не возвращает, а только выводи инфу от объекте.
0
sandrwe
0 / 0 / 0
Регистрация: 08.02.2014
Сообщений: 25
25.03.2014, 14:43  [ТС] #11
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
int aa;
                cin>>aa;
                switch(aa)
                {
                    case 1: {cout<<"Wpisz ID studenta--> ";        //IFORMACJA O STUDENTACH
                    string aaa;
                    cin>>aaa;
                    for(int i=0; i<36; i++)
                    {
                        if(aaa==ocn[i]->s_get_id())
                        {
                            ocn[i]->o_wypisz_2();
                            ocn[i]->s_get_kierunek();
                        }
                    }
                    //break;
                    return 0;}
Просветите неопытного кто тут что возвращает)
П.С при return 0, программа вырубается
0
taras atavin
3570 / 1753 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
25.03.2014, 14:48 #12
Это ты должен знать, что хочешь вернуть. Но если бы функция ничего не возвращала, то была бы void, а тогда не было бы процитировной тобой гогомессаги, в которой как раз и говорится, что функция обязана вернуть значение, так как её тип int. И вся прога не может вырубаться по
C++
1
return 0;
из функции.
0
sandrwe
0 / 0 / 0
Регистрация: 08.02.2014
Сообщений: 25
25.03.2014, 14:53  [ТС] #13
Страшно извиняюсь, это меню у меня в main-файле. Тупанул.
0
taras atavin
3570 / 1753 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
25.03.2014, 14:54 #14
Так ты даже декомпозицию не сделал?
0
sandrwe
0 / 0 / 0
Регистрация: 08.02.2014
Сообщений: 25
25.03.2014, 14:57  [ТС] #15
В смысле просто разделить все это на методы?
0
25.03.2014, 14:57
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.03.2014, 14:57
Привет! Вот еще темы с ответами:

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

switch case - C++
как в блок-схеме изображается switch case?

Switch - case - C++
Обязательно с использованием классов Есть задача. Дан массив вещественных чисел. а) Ко всем отрицательным элементам прибавить элемент...

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


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

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