函数总是返回0

时间:2018-11-30 10:34:13

标签: pascal

我有点困惑为什么加法函数无论我放置什么输入组合都总是返回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; 

1 个答案:

答案 0 :(得分:4)

您的AddOp函数始终返回0,因为您从未为其函数结果赋值。在其中的某个位置,您应具有要执行的保证* 的语句,如下所示:

  AddOp := {whatever the correct value is}

由于您显然正在使用FreePascal,因此可以使用Result作为函数结果的别名,如

  Result := {whatever the correct value is}

*实际上,这有点夸大其词,因为通过函数代码的有效执行路径可能不止一个,因此更通用的规则是,通过函数的每个有效执行路径都应使函数返回一个值。