Информатика и технология программирования

       

Допустимые случаи использования оператора goto


Нисходящее пошаговое проектирование исключает использование оператора goto, более того, запрещает его применение как нарушающего структуру программы. Но нет правил без исключений. Чрезвычайными обстоятельствами, вынуждающими прибегнуть к помощи оператора goto, являются глобальные нарушения логики выполнения программы, например грубые неисправимые ошибки во входных данных. В таких случаях делается переход из нескольких вложенных конструкций либо в конец программы, либо к повторению некоторой ее части. В других обстоятельствах его использование свидетельствует скорее о неправильном проектировании структуры программы -наличии неявных условных или циклических конструкций. Пример правильного использования goto:


retry: for(...) { for (...)
{...
if () goto retry;...
if () goto fatal; }
}
fatal:

Пример неправильного использования goto:


m1: for (i=0; i&#60n; i++)
{..if () goto m1;... }

Здесь имеется неявный внешний цикл, который не был замечен при проектировании программы. Исправленный вариант имеет вид:


while (1)
{ for (i=0; i&#60n; i++)
{ ...if () break;... }
if (i==n) break;
}



Содержание раздела