[DUG] for..loop
Neven MacEwan
neven at mwk.co.nz
Tue Aug 7 22:03:27 NZST 2007
John
This is where 'optimisation' comes in it would count down because
'jump zero' is a single instruction but
would only apply this if there was no reference to the loop var ie
var
i: integer
for i:= 0 to 3 do
begin
write('hello')
end;
but don't do
for i:= 0 to 3 do
begin
end;
because many optimisers will remove this loop altogether
Neven
> That sort of surprises me - surely counting down instead of up would spoil
> the expected logic of a loop in some cases????
>
> Eg a trivial example, getting the first word from a string...
>
> Function getfirstword(aline:string):integer;
> Var
> i:integer;
> For i:=1 to length(aline) do
> Begin
> if(aline[i]=' ') then
> begin
> result:=copy(aline,1,i-1);
> exit;
> end;
> End;
>
> I would indeed be rather upset if I got either the last word back, or the
> whole of the line except the last word.
> This is a made up example, but I am sure a lot of "for" loops might be
> looking for the first instance of something...are you saying we cannot rely
> on the order the loop runs???
>
> John
>
>
>> p.s. has anyone else noticed that sometimes when you step through a
>> for loop the counter actually counts down (in the debugger) (even if
>> it set to count up). This was the case sometimes in D6 if I recall
>> correctly.
>>
>>
>
> It's an optimisation thing. Counting down to 0 is more efficient than
> counting up.
>
> Sean
>
> _______________________________________________
> NZ Borland Developers Group - Delphi mailing list
> Post: delphi at delphi.org.nz
> Admin: http://delphi.org.nz/mailman/listinfo/delphi
> Unsubscribe: send an email to delphi-request at delphi.org.nz with Subject:
> unsubscribe
>
> __________ NOD32 2245 (20070506) Information __________
>
> This message was checked by NOD32 antivirus system. http://www.eset.com
>
>
> _______________________________________________
> NZ Borland Developers Group - Delphi mailing list
> Post: delphi at delphi.org.nz
> Admin: http://delphi.org.nz/mailman/listinfo/delphi
> Unsubscribe: send an email to delphi-request at delphi.org.nz with Subject: unsubscribe
>
>
>
More information about the Delphi
mailing list