Pascal. Оператор GOTO.

Рассмотренные до этого операторы 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, после в программе мы поставили метку перед вводом числа, и после выдачи ошибки о том, что число не является цифрой, поставили перессылку на нашу метку.

То есть наша программа будет повторять запрос на ввод цифры, пока человек не введёт цифру, а не число, как бы будет циклический запрос.

В простых программах он не вызывает затруднений, но в более сложных программах они появляются. И поэтому программисты вообще пытаются избегать этот оператор в программах.

Если Вы всё таки решитесь использовать этот оператор в программе, то используйте его очень осторожно, потому что при выполнении программы Вы не сможете узнать какой участок программы на данный момент выполняется. Да и если Вы будете работать в какой-то компании и будете писать программы с этим оператором, то на этой работе Вы долго не задержитесь.

Рейтинг
( Пока оценок нет )
Загрузка ...