Goto- оператор безумовного переходу, який змінює послідовність виконання інших команд програми шляхом переходу до виконання команди, що має позначку (мітку).
Оператор безумовного переходу записується у вигляді:
goto<позначка>;
Приклад. GotoM1; GotoМітка 1.
Позначка може стояти перед довільним оператором в програмі. Вона відокремлюється від оператора двокрапкою (:)
<позначка> : <оператор>;
Позначку треба заздалегідь оголосити на початку програми у розділі опису міток. Цей розділ відкривається службовим словом label і записується у вигляді:
label<список позначок>;
Приклад. LabelM1, Мітка1, 7, а2;
Позначка може починатися з букви або бути числом від 0 до 9999. Однією позначкою може бути помічений тільки один оператор. Ідентифікатор позначки не повинен співпадати з ідентифікатором змінної або константи.
Задача 2. Ввести декілька наборів коефіцієнтів квадратного рівняння ax2+bx+c=0 і вивести повідомлення чи матиме рівняння дійсні корені, чи ні.
programRivnyannya;
usesCrt;
label99, finish;
vara,b,c,d,x,y:real;
Begin
clrscr;
99: writeln (‘Введіть коефіцієнти квадратного рівняння’);
readln (a,b,c);
ifa = 0 then gotofinish;
d:= sqr(b) - 4*a*c*;
ifd >= 0 thenwriteln (‘Дане рівняння має дійсні розв’язки’)
Else
Begin
writeln(‘Дані введені некоректно’); writeln(‘Рівняння дійсних розв’язків не має);
goto99;
end;
finish: readln;
End.
Зауваження. Не можна передавати керування команді, яка є в середині підпрограми чи в середині складеної команди. Оператор безумовного переходу порушує принцип структурованого підходу до написання програм мовою Pascal, тому використовувати його необхідно у випадку крайньої необхідності.