我有点困惑为什么加法函数无论我放置什么输入组合都总是返回0。我已经检查了用户输入是否正确放置在我创建的数组中,并且输入中完全没有问题。我构造函数的方式是否一定是错误的?
Program MathOperation;
uses crt;
type
inputArray = array [1..5] of real;
var
userChoice : integer;
inputValue : inputArray;
procedure userInputValues;
var
counter : integer = 0;
begin
while counter<5 do
begin
write('>> Enter number [', counter + 1, ']: ');
read(inputValue[counter]);
counter := counter+1;
end;
end;
function addOp:real;
var
addCtr : integer = 0;
sum : real = 0;
begin
while addCtr<5 do
begin
sum := sum + inputValue[addCtr];
addCtr := addCtr+1;
end
end;
答案 0 :(得分:4)
您的AddOp
函数始终返回0,因为您从未为其函数结果赋值。在其中的某个位置,您应具有要执行的保证* 的语句,如下所示:
AddOp := {whatever the correct value is}
由于您显然正在使用FreePascal,因此可以使用Result
作为函数结果的别名,如
Result := {whatever the correct value is}
*实际上,这有点夸大其词,因为通过函数代码的有效执行路径可能不止一个,因此更通用的规则是,通过函数的每个有效执行路径都应使函数返回一个值。