Dennis wrote 14 lines
var i , n : integer;
for i := 1 to 100 do begin
if IntArray[i] > 100 then begin
n := i;
break;
end;
end;
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 where in.
Nevertheless, you should never rely on i value after loop. It is a bad practice.
A little off topic, maybe you should think of using a while.
n:=1;
While (n<=100) and (IntArray[n] <= 100)
do inc(n);
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.
Regards
Santiago A.