program ExitDemo;

procedure Foo (Bar: Integer);
var
  Baz, Fac: Integer;
begin
  if Bar < 1 then
    Exit;                  { Exit foo }
  Fac := 1;
  for Baz := 1 to Bar do
    begin
      Fac := Fac * Baz;
      if Fac >= Bar then       { Exit foo }
        Exit;
      WriteLn (Bar,' is greater then ', baz, '!, which is equal to ', Fac)
  end
end;

begin
  Foo (-1);
  Foo (789);
  Exit;                  { Terminates program }
  Foo (987654321)        { This is not executed any more }
end.
