Согласие на обработку персональных данных.



13.08.2017
Новая статья Стандарт C++: общие сведения.

06.08.2017
Новое видео Динамические массивы.

23.06.2017
Новые видео и статья Русский язык в консольных приложениях Lazarus.

22.07.2017
Новое видео Очередь.

19.06.2017
Новая задача Найти максимальное отрицательное число.

Раздел: Стандартные функции Паскаля

Процедура Exit

Как стать программистом 2.0 Как стать программистом 2.0

Эта книга для тех, кто хочет стать программистом. На самом деле хочет, а не просто мечтает. И хочет именно стать программистом с большой буквы, а не просто научиться кулебякать какие-то примитивные программки… Подробнее...

Процедура Exit в Паскале выполняет выход из программы (выход из подпрограммы, выход из процедуры, выход из функции). Синтаксис:

procedure Exit(const X: TAnyType);

procedure Exit;

Процедура Exit выполняет выход из текущей подпрограммы и возвращает управление вызвавшей эту подпрограмму программе (или подпрограмме). То есть если вы вызвали подпрограмму ПП из своей программы, а в подпрограмме ПП есть процедура Exit, то подпрограмма ПП будет завершена, и программа продолжит работу.

Если же процедура Exit будет вызвана из программы, то будет завершена программа.

В процедуру Exit можно (но не обязательно) передать параметр Х любого типа (если Exit вызывается в функции). В этом случае, если подпрограмма Exit вызывается в функции, то при вызове Exit вызвавшая её функция вернёт значение Х.

ВАЖНО!
Тип параметра Х может быть любым, но он должен совпадать с типом результата, возвращаемого функцией, из которой вызывается процедура Exit.

Как выйти из функции

Конечно, вы уже догадались, как выйти из подпрограммы (функции или процедуры). Но на всякий случай поясню подробно.

Итак, вот пример функции, которая использует процедуру Exit:

function XLess10(x : byte) : boolean;
begin
  Result := FALSE;
  if x >= 10 then Exit;  //Если х >= 10, то выйти из функции
  Result := TRUE;        //и не выполнять этот код
end;

Здесь мы проверяем переданный в функцию параметр Х. Если он больше или равен 10, то мы вызываем процедуру Exit, которая выполняет выход из функции. То есть код, который находится после Exit, уже не выполняется. И функция (в нашем случае) возвращает FALSE;

Если же Х меньше 10, то процедура Exit не вызывается, и выполняется последняя строка кода, в которой мы результат функции устанавливаем в TRUE.

То есть наша функция проверяет значение Х, и если оно меньше 10, то функция возвращает TRUE. В остальных случаях функция возвращает FALSE.

Как выйти из программы

Точно также можно выйти из программы, если в этом есть необходимость. Если ваша программа, например, обнаруживает какую-то критическую ошибку, которую не может обработать, то можно с помощью процедуры Exit выполнить выход из программы в любом месте.

Пример программы, а также примеры, где можно это использовать, вы можете найти ниже.

program exitproc;

//****************************************************************
// Функция возвращает TRUE, если х меньше 10, иначе возвращает FALSE
//****************************************************************
function XLess10(x : byte) : boolean;
begin
  Result := FALSE;
  if x >= 10 then Exit;  //Если х >= 10, то выйти из функции
  Result := TRUE;        //и не выполнять этот код
end;

//****************************************************************
// Функция делит Х на Y. Если Y равен нулю, то деление отменяется, 
// а функция возвращает число -1000
//****************************************************************
function DivNum(x, y : byte) : single;
begin
  if y = 0 then Exit(-1000);  //Если у = 0, то выйти из функции
  Result := x / y;
end;

var N : byte;
    Z : single;

begin
  Write('N = ');
  ReadLn(N);
  if XLess10(N) then WriteLn('N < 10')
  else WriteLn('N >= 10');

  Z := DivNum(100, N);
  if Z = -1000 then
    WriteLn('ERROR: Division by zero !!!')
  else
    WriteLn('100 / N = ', Z:0:4);

  ReadLn;
  Exit;               //Здесь выходим из программы
  WriteLn('THE END'); //Этот код уже не будет выполнен
  ReadLn;
end.

Комментарии довольно подробные. Так что всё должно быть понятно.

Здесь для примера есть две функции. Одну мы рассмотрели выше. А другая вызывает процедуру Exit, чтобы не случилось аварийное завершение программы из-за деления на ноль. Здесь также приведён пример использования процедуры Exit с параметром, возвращаемым функцией, которая вызвала процедуру Exit.

Ну и в конце выполняется прерывание программы. То есть последние две строки кода уже не будут выполнены, так как программа завершается с помощью функции Exit.


Директивы компилятора Директивы компилятора
Как это ни странно, но даже многие опытные программисты не используют директивы компилятора, считая их чем-то ненужным и бесполезным. А между тем, директивы компилятора - это очень классная штука. Если их умело применять в своих программах, то можно существенно сократить время на разработку и уменьшить количество рутинных операций. Подробнее...
Инфо-МАСТЕР ®
Все права защищены ©
e-mail: mail@info-master.su

Яндекс.Метрика