C/C++
Почему за использование goto тебя могут забить ногами
Почему за использование goto тебя могут забить ногами
Потому, что в современных языках высокого уровня любой код можно написать без goto и такой код в большинстве случаев будет намного понятнее, чем вариант c goto. Неправильное использование goto приводит к написанию кода, на чтение которого понадобится затратить неадекватно много времени и сил.
Существуют 2 реальные причины использования goto в языках высокого уровня:
1. для обработки ошибок в тех языках, где специальные механизмы работы с ошибками (исключения, возврат ошибки как значения и т. д.) не предусмотрены. Но только в том случае, когда обработка ошибок без goto сильно усложняет код.
2. для имитации многоуровневых break / continue в циклах - опять же, если в языке это не предусмотрено. Но в этом случае чаще также можно обойтись без goto - поместив циклы в отдельную подпрограмму и реализуя выход из циклов посредством return.
Существуют 2 реальные причины использования goto в языках высокого уровня:
1. для обработки ошибок в тех языках, где специальные механизмы работы с ошибками (исключения, возврат ошибки как значения и т. д.) не предусмотрены. Но только в том случае, когда обработка ошибок без goto сильно усложняет код.
2. для имитации многоуровневых break / continue в циклах - опять же, если в языке это не предусмотрено. Но в этом случае чаще также можно обойтись без goto - поместив циклы в отдельную подпрограмму и реализуя выход из циклов посредством return.
Использование goto, за исключением некоторых случаев, ухудшает читабельность программы и мешает компилятору и процессору оптимизировать выполнение кода.
Возвращает обратно, после исполнения пока цель небудет достигнута
Ерунда это, использовать можно иногда, просто если сделать все через goto - то будут очень злые, все равно, что на уровень ассемблера перейти
Есть немало способов обойти использование goto и сделать код более лаконичным
я знаю только 1 минус - типа макаронный код.
непонимаю нытьё.
плюсов дохрена.
continue это гото в конец цикла. а иногда очень нужно гото в начало цикла. почему бы и нет.
куча if ужасно всё тормозит. с гото можно выйграть целую 0.1 сек.
непонимаю нытьё.
плюсов дохрена.
continue это гото в конец цикла. а иногда очень нужно гото в начало цикла. почему бы и нет.
куча if ужасно всё тормозит. с гото можно выйграть целую 0.1 сек.
Потому что
Это глупый миф в среде неучей и дурачков.
Иван Рязанов
Это НЕ глупый миф. Похоже, что ты НИКОГДА не возился с ЧУЖОЙ программой, написанной с кучей GOTO! А вот мне - довелось. Правда, очень давно, году в 78-80.
Сергей Серебряков
Стандарт-не-стандарт-плохо-не-плохо "а Васька (зачеркнуто) Microsoft не слушает да пишет".
Я к тому что если смотреть исходники .NET в Microsoft совсем не гнушаются goto.
Я к тому что если смотреть исходники .NET в Microsoft совсем не гнушаются goto.
Ричард Стивенс, автор известных книг "TCP/IP Illustrated" и "Unix Network Programming", как-то раз заметил, что противникам использования GOTO стоит попробовать реализовать функцию tcp_input() из 4.4BSD реализации TCP/IP без GOTO так, чтобы она была хотя бы столь же эффективна, как исходная. Мораль: всему свое место.
А что такое это
Просто в школе юных программистов за это ругали учителя, поэтому они продолжают ругать за GOTO других программистов, безосновательно аргументируя это очень частными случаями.
Так то это просто оператор, полезный в некоторых случаях. А захламить программу можно и другими вещами, неужели от всего надо отказываться?
Так то это просто оператор, полезный в некоторых случаях. А захламить программу можно и другими вещами, неужели от всего надо отказываться?
Используй до тех пор пока сам не поймешь почему нельзя !
Вообще проблем невижу с гото.
один хер когда что то не работает идешь и смотришь код почему не робит.
Вообще проблем невижу с гото.
один хер когда что то не работает идешь и смотришь код почему не робит.
Похожие вопросы
- C++. Есть ли функция для завершения работы программы (аналог goto в самый конец программы)?
- Как заменить конструкцию if/then/else на goto?!
- Добрый день. Нужна помощь в реализации динамических структур. Нужно написать дек с использованием malloc.
- Указатели. Программирование с использованием динамических двухмерным масивов.
- C++ библиотека fstream. при использовании Кириллицы изменяется кодировка в создаваемом файле..
- Программирование на C++ с использованием динамического массива
- Каковы преимущества и недостатки использования "ДЕК"
- C++ программирование с использованием динамических двумерных массивов
- В чём смысл использования классов?
- Написать программу, которая сравнивает число перестановок элементов при использовании сортировки «пузырьком» (усовершенс
2. кому щас нахер нужно это оптимизирование выполнения кода.
кому нужно тот будет делать это сам.