|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
04.04.2010, 21:54 | #1 |
Новичок
Джуниор
Регистрация: 04.03.2010
Сообщений: 2
|
goto
Имеется программа на определение областей . Немного вот не соображу , куда здесь нужно вставить команду подобного типа goto VvediR , то-есть у меня в данном случае вводится радиус , потом за ним далее координаты x и y , и мне нужно чтобы после завершение сеанса програмы (Ctrl+Z) программа не прерывалась , а сново запрашивала радиус . И только при двойном завершение сеанса подряд завершалась . Я новичок в этой области , надеюсь здесь ответ получу .
Код:
Последний раз редактировалось MaTBeu; 04.04.2010 в 23:16. |
04.04.2010, 22:30 | #2 |
Старожил
Регистрация: 21.03.2009
Сообщений: 2,193
|
Вообще-то goto - это зло, и об этом очень часто говорят. Так что если у вас есть возможность отказаться от него в пользу другого языкового средства, то это настоятельно рекомендуется сделать. Ну а если уж вас заставляют непременно его использовать, то зря то (если я вас правильно понял) сделайте счетчик количества раз, когда был введен радиус, инициализируйте его нулем и после ввода радиуса увеличьте его на единицу, а если после очередного ввода он равен единице (или другому нужному числу), то переходите к метке, поставленной прямо перед запросом на ввод.
А вообще-то то же самое можно сделать с помощью цикла: Код:
Да, и не забывайте про тег CODE!
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта Тема на форуме, посвященная ему же |
04.04.2010, 22:45 | #3 |
C++ hater
СтарожилДжуниор
Регистрация: 19.07.2009
Сообщений: 3,333
|
2Гром
ну про goto ты не прав.... есть моменты, где его использовать крайне удобно. например что то типо.. Код:
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay
My other car is cdr. Q: Whats the object-oriented way to become wealthy? A: Inheritance Последний раз редактировалось pproger; 04.04.2010 в 22:54. |
04.04.2010, 22:52 | #4 | |
Linux C++ Qt ARM
Старожил
Регистрация: 30.11.2008
Сообщений: 3,030
|
Цитата:
Так и так после break; мы выйдем из switch`а. и окажемся в END_FOO:
Дилетант широкого профиля.
"Слова ничего не стоят - покажите мне код!" © Линус Торвальдс |
|
04.04.2010, 22:53 | #5 |
C++ hater
СтарожилДжуниор
Регистрация: 19.07.2009
Сообщений: 3,333
|
2ROD
ну я надумал просто этот код, представь, что после switch еще куча кода, а выйти надо именно тут
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay
My other car is cdr. Q: Whats the object-oriented way to become wealthy? A: Inheritance |
04.04.2010, 23:05 | #6 |
Старожил
Регистрация: 21.03.2009
Сообщений: 2,193
|
pproger, согласен, в некоторых случаях goto можно использовать эффективнее других обычных средств, например, для выхода из вложенных циклов. (Впрочем, и тут можно извратиться, но по-другому - сгенерировать исключение и перехватить ниже этих циклов).
Но в любом случае метка должна располагаться ниже goto, иначе может такая путаница начаться... Словом, тут есть всякие нюансы, но в целом goto лучше не пользоваться и лучше, чтобы новички сначала усвоили это, и только в случае необходимости приходили к тому, что вот в такой ситуации его можно и использовать)
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта Тема на форуме, посвященная ему же |
04.04.2010, 23:10 | #7 |
C++ hater
СтарожилДжуниор
Регистрация: 19.07.2009
Сообщений: 3,333
|
2Гром
ну я считаю, если оператор goto в функции один, метки располагаются ниже, это логично, то почему бы и нет. я им не пользуюсь только из за сложившихся стереотипов. хотя те же самые setjump/longjump тоже функции (не, не операторы) безусловного перехода, делают фактически то же самое (даже больше), вот тока скачут они по стеку, и что то никто не жалуется пс. код (примерный, по памяти писал) из книги "Совершенный код", Стив Макконнелл
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay
My other car is cdr. Q: Whats the object-oriented way to become wealthy? A: Inheritance Последний раз редактировалось pproger; 04.04.2010 в 23:13. |
04.04.2010, 23:23 | #8 |
Eclipse Foundation
Старожил
Регистрация: 19.09.2007
Сообщений: 2,604
|
Код:
|
04.04.2010, 23:32 | #9 |
C++ hater
СтарожилДжуниор
Регистрация: 19.07.2009
Сообщений: 3,333
|
2MaTBeu
с чего ты взял что он недосягаем? при параметре n > 3? еще раз говорю, я привел это в качестве примера. да, можно переписать, я это уже сказал, но в ДАННОМ КОНКРЕТНОМ случае goto тут действительно к месту. не согласен? приведи пример более удобочитаемого кода. если задание не ясно, объясню еще раз. в функции есть несколько точек завершения. перед каждой этой точкой необходимо выполнить какой либо код, который будет освобождать память, выводить какое либо сообщение и тп. пс. не надо только приводить пример с дополнительной фунцией помощником. это и так всем ясно, но это не всегда удобно
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay
My other car is cdr. Q: Whats the object-oriented way to become wealthy? A: Inheritance |
05.04.2010, 00:04 | #10 |
Форумчанин
Регистрация: 15.01.2010
Сообщений: 948
|
Код:
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Assembler'ные вставки и goto | coNsept | C++ Builder | 22 | 21.06.2010 15:22 |
goto | Serg12 | Помощь студентам | 12 | 14.06.2010 17:31 |
GoTo | Diego__ | Microsoft Office Word | 3 | 13.03.2010 19:55 |
чем заменить goto? | Agronom | Общие вопросы C/C++ | 3 | 19.12.2009 19:43 |
php goto | TDrive | PHP | 10 | 28.07.2009 00:04 |