[fpc-pascal] for loop variable value reliable after loop?
svaa at ciberpiula.net
Mon Oct 5 12:28:16 CEST 2015
El 05/10/2015 a las 11:48, Dennis escribió:
> var i , n : integer;
> for i := 1 to 100 do begin
> if IntArray[i] > 100 then begin
> n := i;
> writeln('The '+IntToStr(i)+' item in the array > 100');
> //can we be always sure the value i is always the same as n?
> Even when the compiler optimizes it and uses a cpu register for i
> instead of a memory location?
I remember having read somewhere that in Pascal i value is not
guaranteed after loop, although I have never found a Pascal compiler
Nevertheless, you should never rely on i value after loop. It is a bad
A little off topic, maybe you should think of using a while.
While (n<=100) and (IntArray[n] <= 100)
When the final round count is not the result of a complex computation,
(like this case, 100), it is as fast as for loop and, IMHO, clearer.
More information about the fpc-pascal