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

Альтернатива goto в С++ - C++

Восстановить пароль Регистрация
 
APLAPL
1 / 1 / 0
Регистрация: 18.10.2012
Сообщений: 17
10.01.2013, 17:45     Альтернатива goto в С++ #1
Как перейти из конца цикла (перенаправление - first) в самое начало программы, дело в том, что 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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include <allegro.h>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()     
{
allegro_init();
set_color_depth(32);
set_gfx_mode(GFX_AUTODETECT_WINDOWED, 1000, 800, 0, 0);
install_keyboard ();
//int install_mouse(); 
 
do {
  first:
draw_sprite(screen, black, 0, 0);
    do {
    ........
          goto verify;
          }
          
       }
    while(! key[KEY_SPACE]);    
         
    do {
    .........  
          goto verify;}           
       }
    while(! key[KEY_SPACE]);    
                      
   }
while(! key[KEY_F12]);  
 
             
verify:
       do{
          if (key[KEY_ENTER]) 
          { draw_sprite(screen, Simple, 1, 1); goto exit;}         
    poll_keyboard();
          if (key[KEY_ESC]) 
          { draw_sprite(screen, Simple, 1, 1); goto first;}        
         }    while(! key[KEY_F12]); 
exit:   
poll_keyboard();
allegro_exit();
return 0;
}
 
END_OF_MAIN()
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.01.2013, 17:45     Альтернатива goto в С++
Посмотрите здесь:

Почему не работате goto? C++
Выйти из goto. C++
C++ goto?
Избавиться от goto. C++
C++ Замена goto
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
FlaYnoSt
0 / 0 / 0
Регистрация: 10.01.2013
Сообщений: 18
10.01.2013, 17:59     Альтернатива goto в С++ #2
C++
1
2
while(1){
}
Если правильно понял канешн
v.a.l.i.d
10.01.2013, 18:01
  #3

Не по теме:

Зря вы так много меток повставляли по всей программе (). Потом запутаешься в них

APLAPL
1 / 1 / 0
Регистрация: 18.10.2012
Сообщений: 17
10.01.2013, 18:08  [ТС]     Альтернатива goto в С++ #4
Там всего три, проблема в метке first, когда дело доходит до неё - прога виснет, мне нужно это как-то это исправить.
David Sylva
 Аватар для David Sylva
1280 / 942 / 51
Регистрация: 17.05.2012
Сообщений: 2,686
10.01.2013, 18:10     Альтернатива goto в С++ #5
Цитата Сообщение от APLAPL Посмотреть сообщение
Там всего три

Не по теме:

на 50 строчек кода.

APLAPL
1 / 1 / 0
Регистрация: 18.10.2012
Сообщений: 17
10.01.2013, 18:25  [ТС]     Альтернатива goto в С++ #6
Цитата Сообщение от FlaYnoSt Посмотреть сообщение
C++
1
2
while(1){
}
Если правильно понял канешн
Похоже вы меня не поняли...
Байт
 Аватар для Байт
13941 / 8772 / 1220
Регистрация: 24.12.2010
Сообщений: 15,872
10.01.2013, 18:26     Альтернатива goto в С++ #7
APLAPL, Очень странно. Вы из одного цикла делаете goto внутрь другого... Как должен реагировать на это компилятор, какой код он генерирует, ума не приложу, да и не хочется. Попробуйте first: поставить строчкой повыше. А лучше - переделайте эту совершенно безобразную программу.
Вместо goto verify, goto exit поставьте break;
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
10.01.2013, 18:30     Альтернатива goto в С++ #8
Входить в цикл по гоуту и так же в него входить - лучший способ испортить исходник и потерять за переходами собственную мысль.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.01.2013, 18:59     Альтернатива goto в С++
Еще ссылки по теме:

C++ Аналог goto
C++ Ненависть к Goto
C++ Goto

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

Или воспользуйтесь поиском по форуму:
Kastaneda
10.01.2013, 18:59     Альтернатива goto в С++
  #9

Не по теме:

Цитата Сообщение от Байт Посмотреть сообщение
Как должен реагировать на это компилятор, какой код он генерирует, ума не приложу
Компилятор генерит точно такой же код, как без goto, только с goto Ну всмысле это для него не проблема, в ассемблере есть инструкция безусловного перехода а-ля goto.

Yandex
Объявления
10.01.2013, 18:59     Альтернатива goto в С++
Ответ Создать тему
Опции темы

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