Инструкция goto в Delphi

Инструкции if и case используются для перехода к последовательности инструкций программы в зависимости от некоторого условия.

Поэтому ихиногда называют инструкциями условного перехода. Помимо этих инструкций управления ходом выполнения программы существует еще одна — инструкция безусловного перехода goto.

В общем виде инструкция goto записывается следующим образом:

 

goto Метка;

 

где метка — это идентификатор, находящийся перед инструкцией, которая должна быть выполнена после инструкции goto. Метка, используемая в инструкции goto, должна быть объявлена в разделе меток, который начинается словом label и располагается перед разделом объявления переменных.

В программе метка ставится перед инструкцией, к которой должен быть выполнен переход в результате выполнения инструкции goto. Сразу после метки ставится двоеточие.

 

В листинге приведен вариант процедуры проверки числа, в которой ин

струкция goto используется для завершения процедуры в том случае, если  

пользователь введет неверные данные.

 

 

Листинг:

 

01.procedure TForml.ButtonlClickfSender: TObject);
02.label // раздел объявления меток
03.bye;
04.var
05.n: integer// проверяемое число
06.d: integer// делитель
07.r: integer// остаток от деления п на d
08.begin
09.n:=StrTo!nt(Edit1.text);
10.if n <= 0 then
11.begin
12.MessageDlg('Число должно быть больше нуля.',
13.mtError,(mbOkl,Q);
14.Editl.text:= '';
15.goto bye;
16.end;
17.// введено положительное число
18.d: = 2// сначала будем делить на два
19.repeat
20.r:= n mod d;
21.if r о 0 // n не разделилось нацело на d
22.then d:= d + 1;
23.until r = 0;
24.Iabel2.caption:=Editl.text;
25.if d = n
26.then Iabel2.caption:=label2.caption <em> </em>
27.<em>
28. 
29.' — простое число.'
30. 
31. 
32.else Iabel2.caption:=labe!2.caption
33.' — обычное число.';
34.bye:
35.end;

 

 

 

В литературе по программированию можно встретить суждения о недопустимости применения инструкции goto, поскольку она приводит к запутан 

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

 

dle

Помоги проекту! Расскажи друзьям об этом сайте: