[an error occurred while processing this directive]
|
В своей статье "GOTO считать вредным" Дейкстра говорил об избыточных переходах в программах (тогда основным языком было фортран, а без GO TO там мало чего напишешь) и призывал даже в отдельных случаях жертвовать эффективностью ради читаемости.
Похожий на ваш пример приведен в книге "Программисткий камень", автора не помню и под рукой текста нет.
Допустим мы делаем инициализацию нескольких устройств, причем при неудаче процесс нужно повторить.
Пример с GOTO
try_again:
if (! init1()) goto try_again;
if (! init2()) goto try_again;
...
if (! initN()) goto try_again;
Программа прозрачна и замечательно читается.
Пример сделанный считающими любой GOTO дурным тоном:
while (init1())
{ while(init2())
{while(init2())
...
}}}..}}
Совершенно нечитаемо, легко допустить ошибку, тяжело исправлять.
E-mail: info@telesys.ru