Оператор безусловного перехода goto считается вредным в программировании по нескольким причинам:
- Усложняет чтение исходного кода. 5 Чтобы отслеживать логику программы, написанной с goto, программисту приходится держать в голове состояния всех переменных. 5
- Приводит к ошибкам при отладке кода. 1 Переход к метке может быть неожиданным и трудно обнаружимым. 1
- Учит программиста выбирать «лёгкие» пути правильным решениям, в целом снижая качество работы и ответственность при проектировании приложений. 1
Однако есть ситуация, когда использование goto является оправданным: выход из вложенных циклов. 5 В языках, в которых нет возможности использовать для этого оператор break, допустимо использовать goto, потому что это не ухудшает, а улучшает читаемость. 5