0 / 0 / 0
Регистрация: 01.07.2009
Сообщений: 6
|
||||||
1 | ||||||
Замена goto на адекватный оператор27.10.2010, 21:39. Показов 13730. Ответов 34
Метки нет (Все метки)
Есть приблизительно такой код (условие всередине нескольких циклов, приводить которые не имеет смысла):
При таком раскладе уходит в рекурсию. Можно как-то переписать код без использования оператора goto?
0
|
27.10.2010, 21:39 | |
Ответы с готовыми решениями:
34
Оператор Goto и ветвление Как исполльзовать оператор goto? Оператор goto в коде под Банкомат Замена goto |
1563 / 1041 / 94
Регистрация: 17.04.2009
Сообщений: 2,995
|
|
28.10.2010, 00:05 | 21 |
Ну дак вы показываете замены, а не говорите чем они лучше. Вашу цитату можно привести в доказательство того что, что 3 действия дублируют готу и зачем они тогда - это утрировано конечно, но суть думаю вы поняли ...
0
|
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
|
|
28.10.2010, 00:08 | 22 |
вы либо троллите, либо это печально
ваша подача спора примитивна
0
|
1563 / 1041 / 94
Регистрация: 17.04.2009
Сообщений: 2,995
|
|
28.10.2010, 00:12 | 23 |
Вы либо не знаете, что ответить, либо что то еще (не придумал пока ничего пафосного). Просто все аргументы были можно "заменить на другое". У easybudda был аргумент пока самый весомый, но никто и не призывает переходить на готу. Но все с фанатизмом говорят, что готу плохо, но чем конкретно не очень понятно.
0
|
3953 / 1808 / 184
Регистрация: 21.11.2009
Сообщений: 2,540
|
|
28.10.2010, 00:14 | 24 |
KuKu, никто не говорил, что goto - запретный плод.
Если у вас одна метка и вы чётко понимаете при каком условии будет выполнена переадресация - используйте, ради Бога. Однако, если у вас большой проект, с кучей меток - вам очень сложно будет уловить суть. Код будет разбросан. Будете смотреть что у вас выполняется в 1791-ой строке, всё вроде будет ясно, потом в 1792-ой будет метка на 180-ую строку, а из неё можно прыгнуть и в 51-ую ... и всё это делается ради того, чтобы опять вернуться к 1793-ей строке и посмотреть, а что же будет, если не переходить по метке...
1
|
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
|
|
28.10.2010, 00:14 | 25 |
KuKu, можно сказать vector и string уг, больше их не используем
да, все подумали - может иногда их и не стоит использовать, но это уж вы приводите аргументы почему и когда надо goto использовать, а не "а так? а так, а почему так"
0
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
28.10.2010, 00:16 | 26 |
KuKu, Что ж... В goto нет смысла по причине того, что есть высокоуровневые вещи выполняющие не совсем ту же работу, но все же.
А именно. Циклы, exit, return, throw. Вы же не используете асемблерные вставки для всего подряд? Так зачем использовать низкоуровневые конструкции типа goto?
1
|
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
|
|
28.10.2010, 00:17 | 27 |
а goto и есть практически асмовская команда - jmp
1
|
8384 / 3616 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
|
||||||
28.10.2010, 14:30 | 29 | |||||
Ты об этом:
Странное решение и продолжение Странное решение ? Хотя в таких случаях
0
|
8384 / 3616 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
|
|
28.10.2010, 15:21 | 31 |
0
|
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
|
28.10.2010, 15:25 | 32 |
Где-то читал, что оправданным считается применение goto для выхода сразу из нескольких вложенных циклов. В таком случае ваш код не будет считаться говнокодом
0
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
28.10.2010, 15:27 | 33 |
Nameless One, Ну для этого ведь и throw хватит.
0
|
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
|
28.10.2010, 15:29 | 34 |
Lavroff, в С throw нету
0
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
28.10.2010, 15:30 | 35 |
Nameless One, Это да. Тут согласен)
0
|
28.10.2010, 15:30 | |
28.10.2010, 15:30 | |
Помогаю со студенческими работами здесь
35
C++ Замена goto Использовать оператор перехода GOTO в приведенном коде Заменить оператор goto на цикл, если это возможно Переделать фрагмент кода так, чтобы использовался оператор goto Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |