exit 用法 pascal

来源:百度知道 编辑:UC知道 时间:2024/06/25 00:36:31
var
s,st:string;
a:array[1..26]of string;
c:array[1..26]of boolean;
ans,e,g,i,k,x,n:longint;

procedure del(var ss:string); //删除空格
begin
while pos(' ',ss)<>0 do delete(ss,pos(' ',ss),1);
end;

function f(l,r:longint):longint;
var
kh,fh,i:longint;
begin
if l>r then exit;
kh:=0;
fh:=0;
for i:=r downto l do
begin
if st[i]=')' then inc(kh) else
if st[i]='(' then dec(kh);
if kh=0 then
begin
if (st[i]in['+','-']) then begin fh:=i; break;end else
if (st[i]='*')and((fh=0)or(st[fh]in['*','^'])) then fh:=i else
if (st[i]='^')and(fh=0)then fh:=i;
end;
end;
if fh=0 then
begin
if (st[l]='(')and(st[r]=')') then exit(f(l+1,r-1)); // exit(f(...)) 这个用法啥子意思 就是exi

在Pascal中,exit可用在自定义函数中或主程序中,以下为详细说明:

  1. 自定义函数中的exit:

    在自定义函数中,exit的作用是返回函数的值,如下代码:

    var a:longint;

    function f(a:longint):longint;

    begin

      exit(a+2)  //返回函数的值a+2

    end;

    begin

      readln(a);

      writeln(f(a));  //调用函数f()

    end.

    样例输入:

    10

    输出:

    12

    在自定义函数f()中,利用exit来返回该函数的值a+2。

  2. 主程序中的exit:

    在主程序中,exit的作用是结束程序,如下代码:

    var a:longint;

    begin

      readln(a);

      writeln(a+1);

      exit;

      writeln(a+2);

    end.

    样例输入:

    10

    输出:

    11

    在输出时没有输出12,即没有运行writeln(a+2);这一语句,因为当程序运行到exit语句时,就直接结束了程序,exit后面的代码不会执行。

exit 是退出当前程序块。即在任何子程序中执行 exit , 那么将退出这个子程序。如果是在主程序中执行 exit,那么将退出整个程序。
相当于 goto 这个程序块的末尾的 end 。
例如:试除法判断素数时,一旦整除,就把函数值赋为false ,然后exit。
注意:类似上面,exit 也是只对当前这一个子程序产生作用,如果多重嵌套子程序,那么其中某个子程序执行了exit 以后,将返回到调用它的那个语句的下一个语句。

例如:
function f(x: