0 / 0 / 0
Регистрация: 01.07.2009
Сообщений: 6
|
||||||
1 | ||||||
Замена goto на адекватный оператор27.10.2010, 21:39. Показов 13739. Ответов 34
Метки нет (Все метки)
Есть приблизительно такой код (условие всередине нескольких циклов, приводить которые не имеет смысла):
При таком раскладе уходит в рекурсию. Можно как-то переписать код без использования оператора goto?
0
|
27.10.2010, 21:39 | |
Ответы с готовыми решениями:
34
Оператор Goto и ветвление Как исполльзовать оператор goto? Оператор goto в коде под Банкомат Замена goto |
365 / 366 / 167
Регистрация: 11.06.2010
Сообщений: 703
|
|
27.10.2010, 21:55 | 2 |
0
|
0 / 0 / 0
Регистрация: 01.07.2009
Сообщений: 6
|
||||||
27.10.2010, 22:00 [ТС] | 3 | |||||
Может быть, приведу, мало ли что
0
|
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
|
||||||
27.10.2010, 22:43 | 4 | |||||
0
|
0 / 0 / 0
Регистрация: 01.07.2009
Сообщений: 6
|
|
27.10.2010, 22:58 [ТС] | 5 |
0
|
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
|
|
27.10.2010, 23:05 | 6 |
а чем отличается от оригинала, я упускаю?
0
|
0 / 0 / 0
Регистрация: 01.07.2009
Сообщений: 6
|
|
27.10.2010, 23:08 [ТС] | 7 |
Прошу прощения, просмотрел ещё раз, по идее все правильно. Хотя рекурсия по прежнему имеет место быть
0
|
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
|
|
27.10.2010, 23:10 | 8 |
это не рекурсия, просто сложная структура, но уж лучше чем с метками
0
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
27.10.2010, 23:22 | 10 |
KuKu, В нем нет смысла в языке среднего/высокого уровня.
0
|
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
|
|
27.10.2010, 23:23 | 11 |
за то что он усложняет понимание поведения программы, ваш КО
0
|
5055 / 3115 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
|
|
27.10.2010, 23:30 | 13 |
KuKu,
10 Капитан Очевидность))) 20 Ваш GOTO 10
0
|
Модератор
12458 / 7482 / 1753
Регистрация: 25.07.2009
Сообщений: 13,762
|
|
27.10.2010, 23:37 | 15 |
операторы for и while по сути делают одно и то же, мало того - даже код может одинаковый скомпилиться. С goto совсем другая история. Мало того, что кто-то другой вряд ли уследит за ходом вашей мысли в том плане, откуда и куда там переходы происходят. Попробуйте сами написать програмку хотя бы в пару сотен строк принципиально обходя использование операторов for и while и заменяя их на goto. Убедитесь, что программа работает, и отложите её на неделю примерно. А через неделю откройте и попробуйте сами разобраться. Разве что возле каждой метки и каждого перехода по десять строк комментариев писать...
1
|
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
|
|
27.10.2010, 23:40 | 16 |
KuKu, спорить бесмысленно, just use it, на своем опыте поймете, то что в программировании поняли лет тридцать назад
0
|
1563 / 1041 / 94
Регистрация: 17.04.2009
Сообщений: 2,995
|
|
27.10.2010, 23:46 | 17 |
easybudda, ну вы уже в крайность вобще for, while не использовать. Ведь иногда же гораздо проще сделать, к примеру, если входящие данные не такие -> goto EXIT без всяких проверок и тому подобное.
Добавлено через 25 секунд alex_x_x, ну надо же когда то дорасти до программистов 30ти летней давности ... Добавлено через 1 минуту Но я подумал над этим
0
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
27.10.2010, 23:47 | 18 |
KuKu, А return 1? А throw? А exit() в конце концов? оО
0
|
1563 / 1041 / 94
Регистрация: 17.04.2009
Сообщений: 2,995
|
|
27.10.2010, 23:59 | 19 |
Lavroff,
- что то вводим если не то goto EXIT - что то делаем если не то goto EXIT - что то выводим - return(0) - :EXIT - что то делаем - return(0) есть подозрение, что если код не мал, то такая схема будет не хуже чем через throw, return и exit и не менее(если не более) наглядна. Тут все решают какие то частности в решение конкретной задаче. P.S. я же обещал, думаю все таки над тем, что готу плох
0
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
28.10.2010, 00:01 | 20 |
KuKu, Что-то вводим если не то
return; Что-то вводим если не то exit; Что-то вводим если не то throw;
0
|
28.10.2010, 00:01 | |
28.10.2010, 00:01 | |
Помогаю со студенческими работами здесь
20
C++ Замена goto Использовать оператор перехода GOTO в приведенном коде Заменить оператор goto на цикл, если это возможно Переделать фрагмент кода так, чтобы использовался оператор goto Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |