Инструкции if и case используются для перехода к последовательности инструкций программы в зависимости от некоторого условия.
Поэтому ихиногда называют инструкциями условного перехода. Помимо этих инструкций управления ходом выполнения программы существует еще одна — инструкция безусловного перехода goto.
В общем виде инструкция goto записывается следующим образом:
goto Метка;
где метка — это идентификатор, находящийся перед инструкцией, которая должна быть выполнена после инструкции goto. Метка, используемая в инструкции goto, должна быть объявлена в разделе меток, который начинается словом label и располагается перед разделом объявления переменных.
В программе метка ставится перед инструкцией, к которой должен быть выполнен переход в результате выполнения инструкции goto. Сразу после метки ставится двоеточие.
В листинге приведен вариант процедуры проверки числа, в которой ин
струкция goto используется для завершения процедуры в том случае, если
пользователь введет неверные данные.
Листинг:
01.procedure TForml.ButtonlClickfSender: TObject);02.label // раздел объявления меток03.bye;04.var05.n: integer; // проверяемое число06.d: integer; // делитель07.r: integer; // остаток от деления п на d08.begin09.n:=StrTo!nt(Edit1.text);10.if n <= 0 then11.begin12.MessageDlg('Число должно быть больше нуля.',13.mtError,(mbOkl,Q);14.Editl.text:= '';15.goto bye;16.end;17.// введено положительное число18.d: = 2; // сначала будем делить на два19.repeat20.r:= n mod d;21.if r о 0 // n не разделилось нацело на d22.then d:= d + 1;23.until r = 0;24.Iabel2.caption:=Editl.text;25.if d = n26.then Iabel2.caption:=label2.caption <em> </em>27.<em>28. 29.+ ' — простое число.'30. 31. 32.else Iabel2.caption:=labe!2.caption33.+ ' — обычное число.';34.bye:35.end;
В литературе по программированию можно встретить суждения о недопустимости применения инструкции goto, поскольку она приводит к запутан
ности программ. Однако с категоричностью таких утверждений согласиться нельзя. В некоторых случаях применение инструкции goto вполне оправдано. Приведенный пример, где инструкция goto используется для аварийного завершения процедуры, относится именно к таким случаям.
