Рассмотренные до этого операторы if и case предоставляют выбор определённых действий на определённый случай. Но бывают такие моменты, когда нужно обойти какой-то участок программы и вернуться к нему позже. Для перехода к определённому месту в программе используется оператор goto — что значит идти к.
Давайте рассмотрим действие этого оператора на примере — возьмём код программы из урока по оператору case, в котором был пример с вводом числа и определением цифра ли это или нет, и если это была цифра, то она выводилась в виде слова:
Program case_; uses crt; var num: Integer; begin clrscr; write('Введите цифру - '); readln(num); case num of 0 : write('Нуль'); 1 : write('Один'); 2 : write('Два'); 3 : write('Три'); 4 : write('Четыре'); 5 : write('Пять'); 6 : write('Шесть'); 7 : write('Семь'); 8 : write('Восемь'); 9 : write('Девять') else write('Это число не является цифрой');; end; readln; end.
Теперь добавим в этот код метку, она объявляется до объявления переменных, и после зарезервированного слова label, потом пишем имя метки. И в самой программе мы пишем имя метки после ставим двоеточие и потом ставим где нибудь метку, таким образом — ставим имя метки и после него двоеточие, и чтобы перейти к метке пишем goto и имя метки. Теперь изменим код нашей программы:
Program case_; uses crt; label metka; var num: Integer; begin clrscr; metka : write('Введите цифру - '); readln(num); case num of 0 : write('Нуль'); 1 : write('Один'); 2 : write('Два'); 3 : write('Три'); 4 : write('Четыре'); 5 : write('Пять'); 6 : write('Шесть'); 7 : write('Семь'); 8 : write('Восемь'); 9 : write('Девять') else begin writeln('Это число не является цифрой');; goto metka; end; end; readln; end.
Была объявлена метка — metka, после в программе мы поставили метку перед вводом числа, и после выдачи ошибки о том, что число не является цифрой, поставили перессылку на нашу метку.
То есть наша программа будет повторять запрос на ввод цифры, пока человек не введёт цифру, а не число, как бы будет циклический запрос.
В простых программах он не вызывает затруднений, но в более сложных программах они появляются. И поэтому программисты вообще пытаются избегать этот оператор в программах.
Если Вы всё таки решитесь использовать этот оператор в программе, то используйте его очень осторожно, потому что при выполнении программы Вы не сможете узнать какой участок программы на данный момент выполняется. Да и если Вы будете работать в какой-то компании и будете писать программы с этим оператором, то на этой работе Вы долго не задержитесь.