Taras_Serevann
@Taras_Serevann
веб-разработчик, автор

Что использовать вместо goto?

Я слышал что goto это плохой тон, но если не goto, то что использовать? Какие есть альтернативы у goto?
  • Вопрос задан
  • 3351 просмотр
Пригласить эксперта
Ответы на вопрос 7
@iamnothing
Вы лучше скажите, в какой ситуации вам остро необходим goto?
Ответ написан
Комментировать
MikhailD
@MikhailD
Developer
Плохим тоном считает не какой-то оператор или технология сама по себе, а неправильное или неуместное его использование. Все зависит от ваших задач.
Ответ написан
Комментировать
sanchezzzhak
@sanchezzzhak
Ля ля ля...
Вызов функции();
return;

Писать код так, что-бы не приходилось такое использовать.
Книга совершенный код в помощь)
Ответ написан
Комментировать
@lookid
if ... : break;

function();
return
Ответ написан
Комментировать
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
Смотря для каких целей. Если у вас там парсер какой, то goto нормально канает, конечные автоматы... все то где нужно быстро и удобно менять состояния. Можно конечно и без goto но это будет не так эффективно с точки зрения производительности.

В 95% случаев же плохим тоном будет goto, большая вложенность условий, кучи ifelse, switch-case-ы и т.д. Но все же есть случаи когда без этого всего не обойтись.

p.s. если вы обратите внимание на блок "похожие вопросы", там есть пара полезных ссылок.
Ответ написан
Комментировать
vvpoloskin
@vvpoloskin
Инженер связи
Сейчас в ЯП существуют достаточно функций контроля потока:
1) условные операторы
2) циклы
3) исключения
4) вызовы функций
Всего этого обычно хватает
Ответ написан
Все верно. goto - это плохой тон. Дело в том, что используя goto можно легко запутаться, в каком месте сейчас исполняется код. По этой же причине break также лучше не использовать по возможности. Код нужно писать как будто это рассказ на обычном языке. "Действие" должно длится сверху-вниз, от начала к концу, без прыжков и обрывов. Поэтому перед началом программирования стоит продумать такой алгоритм, что бы задействовать только ветвления и циклы.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы