龙岩网站建设,百度一下就知道,asp网站服务建设,全国网站备案拍照4.2.1 带结果的Exit例程
我们已经看到#xff0c;从函数中返回结果所使用的语法与 C 语言家族的语法截然不同。不仅语法不同#xff0c;行为也不同。为结果#xff08;或函数名#xff09;赋值并不像return语句那样终止函数。Object Pascal 开发人员经常利用这一特性从函数中返回结果所使用的语法与 C 语言家族的语法截然不同。不仅语法不同行为也不同。为结果或函数名赋值并不像return语句那样终止函数。Object Pascal 开发人员经常利用这一特性将 Result 用作临时存储空间。例如与其编写
efunction ComputeValue: Integer;
varValue: Integer;
beginValue : 0;while ...Inc(Value);Result : Value;
end; 您可以省略临时变量直接使用Result。无论Result在函数终止时具有什么值都是函数返回的值
function ComputeValue: Integer;
beginResult : 0;while ...Inc(Result);
end; 另一方面有些情况下您可能希望赋一个值并立即退出过程例如在特定的if分支中。如果需要赋值函数结果并停止当前执行您必须使用两个单独的语句给Result赋值然后使用Exit关键字。
如果您记得上一章中“使用Break语句和Continue语句改变程序执行流程”的“FlowTest”示例的代码这可以被重写成一个函数将对Break的调用替换为对Exit的调用。我在以下代码片段的ParamsTest示例中进行了这个更改
function CharInString(S: string; Ch: Char): Boolean;
varI: Integer;
beginResult : False;for I : Low(S) to High(S) doif S[I] Ch thenbeginResult : True;Exit;end;
end; 在Object Pascal中您可以用特殊调用Exit来替换if块的两个语句并传递给它函数的返回值以一种类似于C语言的return语句的方式。因此您可以以更紧凑的方式编写上述代码也因为使用单个语句可以避免begin-end块
function CharInString2(S: string; Ch: Char): Boolean;
varI: Integer;
beginResult : False;for I : Low(S) to High(S) doif S[I] Ch thenExit(True);
end;注解: 在Object Pascal中Exit是一个函数因此您必须在括号中包围要返回的值而在C样式语言中return是一个编译器关键字无需括号。