So whenenever I run the following, i is assigned 0 at line 11, and i don't understand why
Simba Code:
program new;
function LtoXP(level: Integer): integer;
var
temp, i: Integer;
begin
if (level < 1) then exit(-1);
i := 1;
while (i < Level) do
begin
temp += floor(i + 300 * pow(2, i / 7));
//temp := temp + floor(i + 300 * pow(2, i / 7));
inc(i);
writeln(i);
end;
result := floor(temp / 4);
end;
begin
writeln(IntToStr(LtoXP(15)));
end.
I change the statement to the equivalent longer version and it no longer does it
Simba Code:
function LtoXP(level: Integer): integer;
var
temp, i: Integer;
begin
if (level < 1) then exit(-1);
i := 1;
while (i < Level) do
begin
//temp += floor(i + 300 * pow(2, i / 7));
temp := temp + floor(i + 300 * pow(2, i / 7));
inc(i);
writeln(i);
end;
result := floor(temp / 4);
end;