Delphi 7 follows ISO rule. The loop: 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'); Doesn't produce a warning.
The loop: n:=-1; for i := 1 to 100 do begin if (IntArray[i] > 100) and (n<0) then n := i; end; writeln('The '+IntToStr(i)+' item in the array > 100'); Does: [Warning] FOR-Loop variable 'i' may be undefined after loop thanks, Dmitry On Mon, Oct 5, 2015 at 11:21 AM, Sven Barth <pascaldra...@googlemail.com> wrote: > Am 05.10.2015 15:43 schrieb "Adriaan van Os" <f...@microbizz.nl>: > > > > Sven Barth wrote: > > > >> The for-loop-variable contains a valid value after the loop if the loop > was left using a break or goto (this does not seem to be documented in > FPC's language reference guide, but AFAIK it is in Delphi; also don't know > what the ISO standard says about this...). > > > > > > ISO/IEC 7185 :1990(E) says in section 6.8 .3.9 For-statements > > > > After a for-statement is executed, other than being left by a > goto-statement, the control-variable shall be undefined . > > Thanks, so this applies to ISO as well ^^ > > Regards, > Sven > > _______________________________________________ > fpc-pascal maillist - fpc-pascal@lists.freepascal.org > http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal >
_______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal