Использование оператора goto следует избегать в ситуациях, когда его применение может ухудшить визуальное восприятие кода. 1 Чрезмерное использование goto превращает код в «спагетти», когда сложно понять, откуда и куда идёт выполнение. 1
Например, если оператор goto используется для перехода в обоих направлениях или для перехода в область видимости, которая потенциально может обойти инициализацию переменной. 4
Однако есть случаи, когда использование goto оправдано. 14 Например, если есть три вложенных цикла, и требуется при выполнении какого-то условия в самом нижнем цикле сделать выход из всех трёх, но без вынесения в процедуру. 1 В таком случае использование одного goto сократит решение до одной строки и проверок только в одном цикле. 1
Таким образом, в каждом случае следует продумывать, оправдает ли себя применение оператора goto и не ухудшит ли это визуальное восприятие кода. 1