1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!
| Вячеслав Л. |
Сообщение
#1
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 227 Пол: Мужской Реальное имя: Вячеслав Репутация: 3 |
Такой вопрос: вщзможно ли использованием метки (label) заменить использование цикла? И если да то как это будет выглядеть?
-------------------- Само знание есть сила
|
![]() ![]() |
| SKVOZNJAK |
Сообщение
#2
|
![]() Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 930 Пол: Мужской Репутация: 11 |
Цитата Откуда, собственно, ясно, что желание употребить Exit обусловлено неумением выбрать адекватную управляющую конструкцию. А я давно его и не использую, goto гибче, а для аварийного выхода из программы можно и на 0 поделить, для отладки полезно. Оператор case очень нужен и для goto
Но в операторе case переменная A может быть не любого типа. Если вдруг понадобился неподдерживаемый тип, жди 100 лет пока в новом компиляторе добавят возможностей или переделывай структуру или воткни goto. Если много раз апгрейдить эту процедуру
Однажды может понадобиться goto - чтобы перед case лишние операторы не выполнялись. Но лучше обходиться минимумом goto, от лишних вреда больше чем пользы, проверено. Под масштабированием в большую сторону я понимал втыкание в программу больших и не очень кусков кода без существенной отладки. Представь некое усройство из квазиживого пластика. Стиральная машина или пылесос (или гибрид). Понадобилось приделать к нему возможности утюга. Находится нужное место, делается надрез, в него молоточком (goto) загоняется кусок пластика отрезанный от утюга. Как только утюг имплантирован, швы заровнялись, устройсройство стало больше в размерах и теперь не только пылесосит ковры но и утюжит. Так выглядит идея в идеале. В консольных утилитах не нужно заморачиваться над интерфейсом - тот же квазиживой пластик непонятной формы. В какой-то момент ощущается нехватка некоторых опций командной строки, их нужно добавить, но существенно переделывать программу (а для этого придётся подробно её изучать) как-то не хочется, лень наверное Под маштабированием в меньшую сторону понимал немного варварский метод. Берётся готовая работающая программа или библиотека и при помощи goto отсекается всё лишнее. Код никуда не исчезает, но он никогда не будет выполняться. Например, оконная система turbo vision на турбопаскале. В описании написано: изучай всё или ничего. Но можно изучить лишь часть, воткнуть в объект goto и использовать вместо неизученного или ненужного оригинального кода свой альтернативный. Причин для использования три: лень, эксперимент и необходимость. |
| andriano |
Сообщение
#3
|
|
Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 168 Пол: Мужской Реальное имя: Сергей Андрианов Репутация: 28 |
Но лучше обходиться минимумом goto, от лишних вреда больше чем пользы, проверено. Вот с этим полностью согласен.От себя добавлю, что оптимальный минимум в данном случае равен нулю. Цитата Под масштабированием в большую сторону я понимал втыкание в программу больших и не очень кусков кода без существенной отладки. Представь некое усройство из квазиживого пластика. Стиральная машина или пылесос (или гибрид). Понадобилось приделать к нему возможности утюга. Находится нужное место, делается надрез, в него молоточком (goto) загоняется кусок пластика отрезанный от утюга. Как только утюг имплантирован, швы заровнялись, устройсройство стало больше в размерах и теперь не только пылесосит ковры но и утюжит. Так выглядит идея в идеале. Не нужен он здесь. Цитата Под маштабированием в меньшую сторону понимал немного варварский метод. Берётся готовая работающая программа или библиотека и при помощи goto отсекается всё лишнее. Код никуда не исчезает, но он никогда не будет выполняться. Например, оконная система turbo vision на турбопаскале. В описании написано: изучай всё или ничего. Но можно изучить лишь часть, воткнуть в объект goto и использовать вместо неизученного или ненужного оригинального кода свой альтернативный. Причин для использования три: лень, эксперимент и необходимость. 1. Удаление фрагмента из программы. 2. "Комментирование" фрагмента. 3. Дополнительно ввожу логическую константу, которой присваиваю FALSE. Заключаю блок, оформленный в виде составного оператора, под условный оператор. Если мне вдруг понадобится исключенный кусок кода, переопределяю константу на TRUE. |
Вячеслав Людской Использование метки 4.10.2009 13:45
volvo Смотря как и где используется метка... Вообще-то м… 4.10.2009 13:56
kosyak Всегда можно обойтись без меток и Goto. Лучше их н… 4.10.2009 14:55
SKVOZNJAK Практически любой цикл можно заменить метками, и в… 5.10.2009 4:43
andriano Вообще-то GOTO с меткой может использоваться для о… 5.10.2009 14:03
Вячеслав Людской Так что я понимаю, что goto'м лучше не увлекат… 5.10.2009 17:21
TarasBer
Буду стараться обходиться без goto.
Но и в этом… 5.10.2009 18:53
andriano Например выход из вложенного цикла намного проще и… 7.10.2009 10:46
Lapp Другими словами, оператор перехода плох не сам по … 7.10.2009 11:34
TarasBer
Другими словами, оператор перехода плох не сам по… 7.10.2009 22:57

andriano
Давайте отменим Exit, Break, Continue?
Мне без р… 8.10.2009 0:33

SKVOZNJAK
Мне без разницы, ни одним из них никогда не польз… 15.10.2009 3:46

andriano Я вместо этого:
procedure MyProc;
begin
If A=B th… 16.10.2009 0:52
SKVOZNJAK
Спорное утверждение.
Проше, пожалуй, лишь в одном… 15.10.2009 4:10
Вячеслав Людской Действительно, буду считать, что ты мне этого не г… 5.10.2009 21:06
volvo Сквозняк, вот ты агитируешь за GoTo, а ты пробовал… 15.10.2009 4:42
SKVOZNJAK Я не агитирую всех и всегда использовать GOTO а ли… 15.10.2009 6:21
SKVOZNJAK
Нужен - он тот самый оператор из которого состоит… 19.10.2009 3:45![]() ![]() |
|
Текстовая версия | 5.11.2025 20:30 |