Інструкції 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 & lt; = 0 then begin MessageDlg ( 'Число має бути більше нуля. ', mtError, [MbOk], 0); Editl.text: = & quot ;; goto bye; end; // введено позитивне число d: = 2; // спочатку будемо ділити на два repeat r: = n mod d; if r & lt; & gt; 0 // n не розділені остачі на d then d: = d + 1; unti1 r = 0; label2.caption: = Editl.text; if d = n then l abel2.caption: = label2.caption + '- просте число.' else label2.caption: = label2.caption + ' - звичайне число. '; bye: end;
У літературі з програмування можна зустріти судження про неприпустимість застосування інструкції goto, оскільки вона призводить до заплутаності програм. Однак з категоричністю таких тверджень погодитися не можна. У деяких випадках застосування інструкції goto цілком виправдано. Наведений приклад, де інструкція goto використовується для аварійного завершення процедури, відноситься саме до таких випадків.