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

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

Войти
Регистрация
Восстановить пароль
 
Мартиника
0 / 0 / 0
Регистрация: 29.09.2010
Сообщений: 43
#1

Избавиться от goto. - C++

14.10.2011, 01:55. Просмотров 681. Ответов 2
Метки нет (Все метки)

Нашла в интернете одну очень интересную реализацию меню, но там есть 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
26
27
28
29
30
31
32
void choice(){ // ГґГіГ*êöèÿ âûáîðГ*
l:
    int ch=_getch(); // ñ÷èòûâГ*ГҐГ¬ Г§Г*Г*Г·ГҐГ*ГЁГҐ Г*Г*Г¦Г*òîé ГЄГ«Г*ГўГЁГёГЁ
    if(ch==224){ // 224 - ГЅГІГ® ñòðåëî÷êè
      switch(ch){
      case 80:  if(m_pos+1<max_pos) // ГўГ*ГЁГ§
                  ++m_pos;
                menu();
                break;
      case 72:  if(m_pos-1>=0)// ââåðõ 
                  --m_pos;
                menu();
                break;
      case 13:  go(m_pos);// Enter 
                break;
    default:
    goto l;}
    }
   switch(ch){
      case 80:  if(m_pos+1<max_pos) // ГўГ*ГЁГ§ 
                ++m_pos;
              menu();
              break;
      case 72:  if(m_pos-1>=0)// ââåðõ
                  --m_pos;
                menu();
                break;
     case 13:  go(m_pos);// Enter
               break;
    default:
    goto l;}
 }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.10.2011, 01:55
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Избавиться от goto. (C++):

Выйти из goto. - C++
Работаю в С++. Было задание написать программу с использованием goto. Вот код: ...

Аналог goto - C++
Подскажите ,есть ли в С++ аналог оператора goto? Есть код: int main() { setlocale(0, &quot;&quot;); //поддержка русского языка int...

C++ Замена goto - C++
Здравствуйте. Имеется программа которая меняет в предложении местами заданные глаголы. Всё работает, но нужно что бы было без оператора...

Преобразовать for в goto - C++
люди помогите, задали написать функцию с помощью goto вот весь код #include &lt;cmath&gt; #include &lt;iostream&gt; #include &lt;conio.h&gt; using...

Замена goto - C++
Здравствуйте! Имеется следующий код: start: double a; cout &lt;&lt; &quot;\nEnter side of triangle: &quot;; while(!(cin&gt;&gt;a) ||...

Альтернатива goto в С++ - C++
Как перейти из конца цикла (перенаправление - first) в самое начало программы, дело в том, что goto нельзя перенаправлять в начало...

2
Net_Wanderer
235 / 208 / 19
Регистрация: 08.06.2011
Сообщений: 467
14.10.2011, 02:07 #2
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
void choice()
{
    int quit = 0;
 
    while (!quit) {
        quit = 1;
        int ch = _getch(); // считываем значение нажатой клавиши
 
        if(ch==224) { // 224 - это стрелочки
            switch(ch){
            case 80: 
                if(m_pos+1<max_pos) // вниз
                  ++m_pos;
                menu();
                break;
            case 72:
                if(m_pos-1>=0)// вверх 
                    --m_pos;
                menu();
                break;
            case 13:
                go(m_pos);// Enter 
                break;
            default:
                quit = 0;
            }
        }
        switch(ch){
            case 80:
                if(m_pos+1<max_pos) // вниз 
                    ++m_pos;
                menu();
                break;
            case 72: 
                if(m_pos-1>=0)// вверх
                    --m_pos;
                menu();
                break;
            case 13: 
                go(m_pos);// Enter
                break;
        default:
            quit = 0;
        }
    }
}
1
Mustik
56 / 56 / 2
Регистрация: 10.07.2011
Сообщений: 229
14.10.2011, 15:04 #3
Можно и так

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
void choice()
{
         int ch;
 
         while (1) 
         {
                ch = _getch(); // считываем значение нажатой клавиши
 
                if(ch==224) 
                { // 224 - это стрелочки
                        switch(ch)
                        {
  
                        .........                        
 
                                default:
                                        continue;
                        }
                }
                switch(ch)
                {
                
                     ........
 
                        default:
                                continue;
                }
        }  // while (1) 
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.10.2011, 15:04
Привет! Вот еще темы с ответами:

Ненависть к Goto - C++
Почему к Goto такая ненависть ? Я считаю, что goto универсальный оператор, благодаря которому можно отказаться от всяких While и For. ...

Корректно ли использовать goto? - C++
Читал что оператор goto вообще советуют не использовать, кроме разве что глубоких циклов. Но нормально ли это будет, например, вот в таком...

Оператор Goto и ветвление - C++
Помогите, пожалуйста, написать программу, которая сперва считывает введенное с клавиатуры число, а потом, если введено одно значение...

Что то типа goto - C++
Мне нужно что нибудь похожее на goto... Только мне нужно перескочить из функции в одном файле в функцию другого файла


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

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

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