Использование метки |
1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!
Использование метки |
Вячеслав Л. |
Сообщение
#1
|
Бывалый Группа: Пользователи Сообщений: 227 Пол: Мужской Реальное имя: Вячеслав Репутация: 3 |
Такой вопрос: вщзможно ли использованием метки (label) заменить использование цикла? И если да то как это будет выглядеть?
-------------------- Само знание есть сила
|
Вячеслав Л. |
Сообщение
#2
|
Бывалый Группа: Пользователи Сообщений: 227 Пол: Мужской Реальное имя: Вячеслав Репутация: 3 |
Так что я понимаю, что goto'м лучше не увлекаться и по возможности заменять циклами, case'ом и. т. д. Буду стараться обходиться без goto. Спасибо за совет. Буду знать.
-------------------- Само знание есть сила
|
TarasBer |
Сообщение
#3
|
Злостный любитель Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: 62 |
Буду стараться обходиться без goto. Но и в этом деле тоже увлекаться не стоит. Например выход из вложенного цикла намного проще и читабельнее делается как раз меткой. Впрочем, пока не наберётесь опыта, лучше считайте, что я этого не говорил. -------------------- |
andriano |
Сообщение
#4
|
Гуру Группа: Пользователи Сообщений: 1 168 Пол: Мужской Реальное имя: Сергей Андрианов Репутация: 28 |
Например выход из вложенного цикла намного проще и читабельнее делается как раз меткойэтого не говорил. Спорное утверждение.Проше, пожалуй, лишь в одном - можно меньше думать о структуре программы. Но меньше думать - это не всегда хорошо. Необходимость выхода из тела цикла помимо стандартных мест (т.е. начала или конца) обычно возникает вследствие ошибок проектирования. Получается, вместо того, чтобы подумать, как исправить ошибку, мы просто "затыкаем" ее оператором перехода. Ну а в том, что в тщательно спроектированной программе разобраться легче (и, соответственно, легче отлаживать и поддерживать), чем в беспорядочно написанной, я думаю, сомнений ни у кого не возникает. Другими словами, оператор перехода плох не сам по себе, а исключительно тем, что является индикатором плохо спроектированного алгоритма. |
TarasBer |
Сообщение
#5
|
Злостный любитель Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: 62 |
Другими словами, оператор перехода плох не сам по себе, а исключительно тем, что является индикатором плохо спроектированного алгоритма. Давайте отменим Exit, Break, Continue? -------------------- |
andriano |
Сообщение
#6
|
Гуру Группа: Пользователи Сообщений: 1 168 Пол: Мужской Реальное имя: Сергей Андрианов Репутация: 28 |
Давайте отменим Exit, Break, Continue? Мне без разницы, ни одним из них никогда не пользовался. Кстати, Exit не является GOTO, это - аналог RETURN. Но тут также можно привести пример: procedure MyProc;Так вот, интересный факт: если ЯП не содержит аналогов Exit, то мы, не просматривая всего тела прцедуры, можем заключить, что при выходе из нее ВСЕГДА будет выполняться DoSomething. Увы, при наличии Exit нам для такой уверенности уже надо просмотреть весь текст процедуры, т.е. потребуется гораздо больше работы. Так что вред от наличия в языке оператора Exit несомненен. А вот польза сомнительна. |
SKVOZNJAK |
Сообщение
#7
|
Профи Группа: Пользователи Сообщений: 930 Пол: Мужской Репутация: 11 |
Мне без разницы, ни одним из них никогда не пользовался. Кстати, Exit не является GOTO, это - аналог RETURN. Но тут также можно привести пример: procedure MyProc;Так вот, интересный факт: если ЯП не содержит аналогов Exit, то мы, не просматривая всего тела прцедуры, можем заключить, что при выходе из нее ВСЕГДА будет выполняться DoSomething. Увы, при наличии Exit нам для такой уверенности уже надо просмотреть весь текст процедуры, т.е. потребуется гораздо больше работы. Так что вред от наличия в языке оператора Exit несомненен. А вот польза сомнительна. Лишь один частный случай который не даёт представления о всей реальной картине. Как такой вариант упорядоченного применения exit
А можно и так:
Как видно, процедура отмаштабирована в большую сторону без добавления новых и существенного переписывания кода. "Лишние" процедуры в профессиональном коде принято прятать в других файлах (ещё найди в каких) что далеко не всегда улучшает читаемость программ но может немного уменьшить объём. Применение Goto, напротив позволяет уменьшить дробление кода на мелкие части и способствует частичной инкапсуляции данных без применения ООП. Выполняется ли при выходе процедура DoSomething; в общих чертах видно и без просмотра всего тела процедуры. Применение Goto позволяет масштабировать код не только в большую сторону но и в меньшую, но во втором случае размер кода и скомпилированной программы не уменьшится. Сообщение отредактировано: SKVOZNJAK - |
Текстовая версия | 23.05.2024 17:55 |