Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.79/107: Рейтинг темы: голосов - 107, средняя оценка - 4.79
0 / 0 / 0
Регистрация: 22.10.2011
Сообщений: 4

Возврат назад в главное меню из подпункта меню

17.07.2012, 17:27. Показов 22499. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер, подскажите пожалуйста, как организовать многоуровневое меню? А конкретно, надо из подменю вернуться в предыдущее меню.
Я сделал основное, затем подменю, а вот выйти назад из него не получается, выполняется следующий case из основного меню. Получается сделать только оператором goto, которым я возвращаюсь к началу цикла основного меню.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.07.2012, 17:27
Ответы с готовыми решениями:

Возврат в главное меню
В паскале мягко говоря начинающий, не могу понять как сделать чтоб после выполнения любого из пунктов меню дальше функционировало, а не...

Добавление подпункта в меню
.Net 4.6, C#, Windows Forms, VS 2015 Есть в форме строка меню mainMenu (MenuStrip) В строке есть пункт меню Файл (ToolStripMenuItem) ...

Создание выпадающего подпункта в меню
Добрый день. Не получается реализовать выпадающий подпункт в меню. Памагите =D Туторы на ютубе и гугле не помогают, а только портят. ...

5
24 / 24 / 10
Регистрация: 04.04.2012
Сообщений: 119
17.07.2012, 18:57

Не по теме:

Дети, использование оператора goto небезопасно в домашних условиях (с)


А чем Вас не устраивает цикл
C++
1
while(true)
или другой какой то?
0
 Аватар для Fooly
21 / 17 / 4
Регистрация: 26.03.2012
Сообщений: 147
17.07.2012, 19:09
break; после каждого case, а возвращать циклом,, как написали выше
0
 Аватар для Gepar
1186 / 543 / 78
Регистрация: 01.07.2009
Сообщений: 3,517
17.07.2012, 19:12
Применение goto для выхода из глубокого цикла в принципе не такой то уж и плохой поступок. Как вариант заведите переменную bool flag и всюду проверяйте что в ней чтобы ориентироваться заходили ли вы уже в подменю или это только первый проход, но с goto в данном случае код будет выглядеть значительно проще.
0
0 / 0 / 0
Регистрация: 22.10.2011
Сообщений: 4
18.07.2012, 00:06  [ТС]
ну вот пример, выход в главное осуществляем с помощью goto. все-таки хотелось бы его избежать, только я не знаю, куда пихать еще один цикл while(true)?
если убрать goto, то при нажатии "вернуться в главное меню", то прога выводит "press any key" и выходит из программы..

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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#include <tchar.h>
#include <stdio.h>
#include <conio.h>
#include <iostream>
using namespace std;
 
int main()
{
unsigned int counter;
bool exit=false;
 
loop:
 
while (!exit)
{                   //начало внешнего while
cout<<"----------MENU----------";
cout<<"\n[1] show a"<<"\n[2] exit"<<endl;
        cin>>counter;
        switch (counter)
            {       //начало внешнего switch
            case 1:
                {              //начало case 1
                cout<<"a"<<endl;
                while(!exit)
                    {       //начало внутреннего while
                    cout<<"----------UNDER_MENU----------";
                    cout<<"\n[1] show c"<<"\n[2] show b"<<"\n[3] show e"<<"\n[4] show h"<<"\n[5] show i"<<"\n[0] back to main"<<endl;
                        cin>>counter;
                        switch (counter)
                            {            //начало внутреннего switch
                            case 1:
                                cout<<"c"<<endl;;
                                break;
                            case 2:
                                 cout<<"b"<<endl;
                                 break;
                            case 3:
                                cout<<"e"<<endl;
                                break;
                            case 4:
                                 cout<<"h"<<endl;
                                 break;
                            case 5:
                                cout<<"i"<<endl;
                                break;
                            case 0:
                                goto loop;   //как избежать этого?
                                exit=true;
                                break;
 
                            }           //конец внутреннего switch
                    }  //конец внутреннего while
                }    //конец case 1
            case 2:
                {
                exit=true;
                cout<<"Press any key for exit...\n";
                break;
                }
            }  //конец внешнего switch
}   //конец внешнего while
getch();
return 0;
}
0
Модератор
Эксперт по электронике
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,871
18.07.2012, 01:02
Цитата Сообщение от kol6aca Посмотреть сообщение
ну вот пример, выход в главное осуществляем с помощью goto.
ну и сделай каждое подменю отдельной функцией
что то типа
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
switch(ch1)
{
 case '1'
    fnc1();
   break:
 case '2'
    fnc2();
   brear;
...........................
 
void fnc1()
{
..............
switch(ch2)
{
  case '1':
   ........
  break;
 case '2':
   ........
  break;
 case '3':
   return;
 }
}
Добавлено через 4 минуты
таким способом хоть сто вложений сделаешь

Добавлено через 43 минуты
Цитата Сообщение от kol6aca Посмотреть сообщение
если убрать goto, то при нажатии "вернуться в главное меню", то прога выводит "press any key" и выходит из программы..
Цитата Сообщение от kol6aca Посмотреть сообщение
} //конец внутреннего while
} //конец case 1
case 2:
{
exit=true;
а брек после первого касе кто делать будет???
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.07.2012, 01:02
Помогаю со студенческими работами здесь

Access добавление нового подпункта в меню
Если кто то сталкивался поделитесь информацией. Задача следующая создаётся панель на которой создаётся пункт контекстного меню, в этот...

Изменение текста подпункта контекстного меню
Доброго времени суток, уважаемые форумчане! Столкнулся с необходимостью программного изменения текста подпункта контекстного меню (одно...

Разворачивающееся меню с подпунктами и выделением активного пункта и подпункта
Никак не получается найти подобный скрипт, просто с выделением пункта есть, но нужно именно меню, с выпадающими подпунктами и...

Главное меню
6.25. Дана последовательность ненулевых целых чисел, оканчивающая ну¬лем. Определить: А) сколько раз в этой последовательности меняется...

Главное меню
Всем привет! имеется некоторое горизонтальное меню (скрин прилагается), хотелось бы с ним сделать следующие чудеса: - все меню должно...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru