Инструкция goto

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

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


goto Метка


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

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

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

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

Листинг
2.8. Простое число (использование инструкции goto)


procedure TForm1.Button1Click(Sender:
TObject);


label // раздел
объявления меток

bye; var

n: integer; // проверяемое число


d: integer; // делитель


r: integer; // остаток от деления п на d


begin

n:=StrToInt(Editl.text);


if n <= 0 then begin

MessageDlg('Число должно быть больше нуля.',

mtError, [mbOk] , 0) ; Editl.text:= ";


goto bye;


end;

// введено положительное число


d:= 2; // сначала будем делить на два


repeat

r:= n mod d;

if r <> 0 // n не разделилось нацело на d

then d:= d + 1;


unti1 r = 0;

label2.caption:=Editl.text;


if d = n

then label2.caption:=label2.caption

+ ' — простое число.'

else label2.caption:=label2.caption

+' — обычное число.';


bye:


end;


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

Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: