Страницы

Поиск по вопросам

пятница, 31 января 2020 г.

Зачем нужны другие операторы если есть GoTo?

#алгоритм #ооп #goto


Задался вопросом, а зачем нужны другие операторы и циклы если есть мощное ключевое
слово GoTo?

GoTo можно заменить любой цикл, а так же GoTo дает простор для творчества, так как
можно называть метки тем, что в голову взбретет .

Так же, все равно в конечно итоге красивый код превращается в последовательность
GoTO на машинном языке.

На мой взгляд GoTo- это, что-то типа Базона Хигса, который считается частицей бога,
а GoTo оператор машинного бога.
    


Ответы

Ответ 1



Проблема в том, что код пишется не для компилятора, а для человека. Для ваших коллег и для вас самого через полгода. Безумная мощь оператора goto оборачивается его слабой выразительностью. При помощи goto вы можете выразить именно что всё: и итерирование по списку, и проверку логического условия, и вызов подпрограммы, что угодно. Вам, видя оператор goto, для понимания текста придётся восстанавливать логику каждый раз самому. А это трата времени и мысленных усилий, которые приходится применять каждый раз, когда вам нужно понять, правильный ли код, или, ещё хуже, найти ошибку и исправить её. Так что другие операторы в языках есть для людей, читающих и пытающихся понять логику программы. А компьютеру всё равно, он бы и с одним goto работал, железяка тупая.

Ответ 2



Это просто один из стилей 3-го поколения языков программирования. По-моему, возникший скорее для обучения новому мышлению, чем для реального выигрыша. Языки второго поколения (Ассемблеры) без GoTO (JMP) просто не могли работать. Переходные языки (Basic, Fortran) также нумеровали строки и использовали переходы. Стиль "без goto" - всего лишь стиль, не более. Иногда алгоритмы с goto работают быстрее, т.к. в полной мере используют возможности самого процессора Оператор Бога... Что-то в этом есть. Именно идея абстрактной универсальной алгоритмической машины Эмиля Поста содержала что-то типа goto. Всего лишь 6 операций, позволяющих реализовать любой алгоритм... Эта одна из них

Ответ 3



Не во всех языках есть этот оператор. Бездумное использование приводи к коду который очень сложно понимать и поддерживать (спагетти-код). Этот оператор плохо выражает намеренья программиста.

Комментариев нет:

Отправить комментарий