Гость Опубликовано 27 февраля, 2003 Жалоба Опубликовано 27 февраля, 2003 Privet, please help with this: if [ ! $#argv == 0 ] then goto step0 fi => goto: command not found ! Thank you Цитата
Гость Опубликовано 19 марта, 2003 Жалоба Опубликовано 19 марта, 2003 Вообще-то насколько я помню goto уже практически не используется (по этике программированя), к тому же он весьма неудобен. При компиляции возникают нюансы с адресацией, к тому же нафига нужен такой допотопный оператор со статичной привязкой, если можно использовать циклы? Нельзя передать точку управления из следствия then в операнду if т.к. возникает логический парадокс. К тому же метка должна стоять в начале строки А есть он или нет в Линухе я незнаю - сам-то чайник в нём, ObjectPascal знаю, Ц вроде как потихоньку разуметь начинаю. Цитата
Гость Опубликовано 19 марта, 2003 Жалоба Опубликовано 19 марта, 2003 2 ArcEvil: высказывание правильное в принципе, но не по теме. ОР интересовался наличием goto в shellе -- поскольку в DOSовском "командном процеессоре" развитых структурных конструкций нет и goto является единственным средством организации ветвлений да циклов (я думаю, все поняли, что я имею в виду). Что касается других языков программирования (в частности C) то наличие или отсутствие в них goto вообще говоря с платформой никак не связано. Насчет неудобства goto -- вопрос довольно деликатный. Безусловно, в обычной жизни им пользоваться не след, если есть другие способы. Однако использование goto для выхода из глубоко вложенного цикла с большим числом итераций иногда может оказывать существенное влияние на скорость и т. п. А что вы имели в виду говоря о "нюансах с адресацией" или "статичной привязки"? Цитата
Гость Опубликовано 9 апреля, 2003 Жалоба Опубликовано 9 апреля, 2003 У вас шел то какой? И почему все не любят goto? Какой то, простите, дурак сболтнул - и все повторяют... Приведите хотябы ОДИН аргумент, почему яне должен юзать GOTO, если мне через него ПРОЩЕ? Цитата
Гость Опубликовано 18 апреля, 2003 Жалоба Опубликовано 18 апреля, 2003 Ну, например в C++ можно очень легко перепрыгнуть через определение объекта класса, и конструктор не вызовется. А вобще в 90% случаев без goto можно и нужно обходиться. Он затрудняет читаемость кода и вобще выглядит некрасиво. Что значит проще? Приведите пример. Оставшиеся 10% (и даже меньше) - как раз выход из нескольких вложенных циклов (ну редко они встречаются в реальных программах ) и переход к концу функции в низкоуровневых приложениях (в ядре ОС например), где перед return нужно сделать одинаковых действия во всех случаях case, if-then-else и т.п. Цитата
Гость Опубликовано 18 апреля, 2003 Жалоба Опубликовано 18 апреля, 2003 В Си++ перепрыгнуть через определение нельзя. Цитата
Гость Опубликовано 19 апреля, 2003 Жалоба Опубликовано 19 апреля, 2003 И правда нельзя Плохо я еще С++ знаю. Но все равно, goto лепить везде подряд - плохо. Цитата
Гость Опубликовано 21 апреля, 2003 Жалоба Опубликовано 21 апреля, 2003 Гм. Ну насчет дураков -- это вы, уважаемый, загнули. Если Э. Дейкстра, Н. Вирт, Д. Кнут итп -- дураки, то о нас с вами и говорить нечего. Насчет аргументов против goto -- в приниципе рекомендуется почитать означенных авторов. Но если вкратце -- (непродуманное) использование goto затемняет логику работы программы, затрудяет отладку и профилирование -- в частности, потому что нарушается вложенность базовых блоков. Я уж не говорю о сопровождении. Некрасиво, одним словом. Программировать же по принципу КАК ПРОЩЕ -- это вообще сомнительная концепция. В частности, из нее следует что нужно предпочесть последовательный поиск хэшированию, а сортировку пузырьком -- всем остальным видам сортировки. Я уже говорил, что IMHO единственный случай, где применение goto оправдано -- это выход из глубоко вложенного цикла. (Ну я разумеется не говорю о задачах жесткого реального времени, встроенных системах и тп где важно выжать максимум производительности или написать максимально компактный код) Цитата
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.