Такой код невозможно поддерживать, следовательно, такой программист не может работать в команде либо создавать коммерческие программы.
А как еще назвать "специалиста" который больше не может, чем может?
Другие языки программирования и технологии
почему наличие команд GOTO свидетельствует о низкой квалификации программиста?
Существуют разные сообщества которые против использование GOTO, якобы программирование с GOTO считается непонятным и сложным.
Потому что грамотнее решать задачи с использованием рекурсивных алгоритмов. Кроме того, этот оператор реализует переход на метку, а метка всегда привязана к строке в модуле файла, но не к процедуре или функции, в силу чего администрирование и развитие программы очень затруднено.
С ментками всегда много хлопот=))) Мне показывали код, написанный одним индийцем (а оплата у них на фирме в зависимости от количества строчек в коде программы) , так там в каждой пятой строчке была метка!!!! Моему знакомому было намного проще переписать эту прогу, чем разбираться в ней=(((
Считается, что если можно избегать меток, лучше их не использовать, другое дело, что есть такия языки, в которых без них... туговато приходится.... =)))
Считается, что если можно избегать меток, лучше их не использовать, другое дело, что есть такия языки, в которых без них... туговато приходится.... =)))
Смотря где. есть архитектуры, где без GOTO не обойтись, на x86 (amd64) они вредны вот почиму:
Когда мы пишем
int foo(int a)
{
int b = a+2;
return b;
}
...
int a = foo(123);
В машшинном коде это выглядит как:
push 0x7b ; 123 в стек
call 0x00....; Адрес начала foo
foo в начале разварачивает стек.
А если перед int b = a+2; будет метка, и ты по ней перейдеш, что будет в "a"?
+ ко всему при каждом call'е в стек кладетса адрес возврата.
Такие программы очень тяжело отлаживать
Когда мы пишем
int foo(int a)
{
int b = a+2;
return b;
}
...
int a = foo(123);
В машшинном коде это выглядит как:
push 0x7b ; 123 в стек
call 0x00....; Адрес начала foo
foo в начале разварачивает стек.
А если перед int b = a+2; будет метка, и ты по ней перейдеш, что будет в "a"?
+ ко всему при каждом call'е в стек кладетса адрес возврата.
Такие программы очень тяжело отлаживать
Все выше сказаное имеет свой смысл.
Тока есть один случай при котором GOTO оправдывается даже опытными программистами - быстрый выход из дво или более вложенных циклов!! !
Также GOTO неявно применяется для структуры
switch (){ case: breake;} //синтаксис c++
Тока есть один случай при котором GOTO оправдывается даже опытными программистами - быстрый выход из дво или более вложенных циклов!! !
Также GOTO неявно применяется для структуры
switch (){ case: breake;} //синтаксис c++
я вообще ни разу их не использовал.. . мне кажется, что они и вовсе не нужны..
Потому что команда GOTO очень путает код, его читабельность и если не ошибаюсь достаточно сильно затрачивает процессорное время в сравнениями с иными способами организации циклов.
Похожие вопросы
- Курсы по ИТ или собственные проекты: на что лучше тратить время и деньги для повышения квалификации программисту?
- Почему ChatGPT якобы не повлияет на рынок квалифицированных программистов?
- Почему многие считают, что гуманитарий не может стать программистом?
- Программист в команду
- Люди которые против goto утверждают что оно мешает чтению, и как пример приводят СОТНЮ goto в функции. И что-же....
- можно ли большое колчичество меток goto в программе определить как нечистоплотность программиста? или это нормально*?
- Почему goto нехороший стиль программирования ?
- Почему все так ненавидят Goto?
- паскаль, как работать с оператором goto, как ставить метки, чтобы при операции goto 1,
- интересует вот что. обязательно ли наличие высшего образования у программиста при поступлении на работу?