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

Процедура Exit

Основы программирования 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.


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

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

Помощь студентам. Курсовые, дипломы, чертежи (КОМПАС), задачи по программированию: Pascal/Delphi/Lazarus; С/С++; Ассемблер; языки программирования ПЛК; JavaScript; VBScript; Fortran; Python и др. Разработка (доработка) ПО ПЛК (предпочтение - ОВЕН, CoDeSys 2 и 3), а также программирование панелей оператора, программируемых реле и других приборов систем автоматизации. Подробнее...

Инфо-МАСТЕР ®
Все права защищены ©
e-mail: mail@info-master.su

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