Я думаю, что следующая выдержка из статьи Википедии о Goto особенно актуальна здесь:
Вероятно, самая известная критика
GOTO - письмо Эдсгера, написанное в 1968 году.
Дейкстра называется Go To Statement
Считается вредным. В этом письме
Дейкстра утверждал, что неограниченный GOTO
заявления должны быть отменены
языки высокого уровня, потому что они
сложная задача анализа и
проверка правильности программ
(особенно те, которые включают петли).
Альтернативная точка зрения представлена
в структурированном Дональда Кнута
Программирование с помощью go to Заявления
который анализирует много общего программирования
задачи и находит, что в некоторых из них
GOTO - оптимальная языковая конструкция
использовать.
Итак, с одной стороны, у нас есть Эдсгер Дейкстра (невероятно талантливый ученый-компьютерщик), выступающий против против использования оператора GOTO
и, в частности, против чрезмерное использование оператора GOTO
на том основании, что это гораздо менее структурированный способ написания кода.
С другой стороны, у нас есть Дональд Кнут (еще один невероятно талантливый компьютерный ученый), утверждающий, что использование GOTO
, особенно его разумное использование, на самом деле может быть "лучшей" и наиболее оптимальной конструкцией для данного часть кода программы.
В конечном счете, ИМХО, я считаю, что оба мужчины правы. Дейкстра прав в том, что чрезмерное использование оператора GOTO
определенно делает фрагмент кода менее читаемым и менее структурированным, и это, безусловно, верно, если рассматривать компьютерное программирование с чисто теоретической точки зрения.
Однако Кнут также прав, так как в «реальном мире», где нужно применять прагматический подход , утверждение GOTO
при мудром использовании действительно может быть лучшим выбором языковой конструкции для использовать.