Code: Select all
k=2
For i=1 To k
Debug i
k-1 ; exits For earlier
Next
s.s="N2"
For i=1 To Len(s)
Delay(1) ; s unchanged
NextCode: Select all
k=2
For i=1 To k
Debug i
k-1 ; exits For earlier
Next
s.s="N2"
For i=1 To Len(s)
Delay(1) ; s unchanged
NextCode: Select all
For i=1 To 10000
s.s+"."
Next
n=Len(s)
StartTime.q = ElapsedMilliseconds()
For i=1 To Len(s)
Delay(1)
Next
Debug ElapsedMilliseconds() - StartTime ; 11650
StartTime = ElapsedMilliseconds()
For i=1 To n
Delay(1)
Next
Debug ElapsedMilliseconds() - StartTime ; 11451 (0.2 secs faster)That's not how to test properly.
Code: Select all
Procedure CallMy(Value.i)
Debug "is called"
ProcedureReturn Value
EndProcedure
Define I.i
For I = 1 To CallMy(5)
Debug "loop content"
NextTY again!
Code: Select all
For i=1 To 50000
s.s+"."
Next
n=Len(s)
StartTime.q = ElapsedMilliseconds()
For i=1 To Len(s)
a = n * i
Next
et = ElapsedMilliseconds() - StartTime ; 11650
StartTime = ElapsedMilliseconds()
For i=1 To n
a = n * i
Next
et1 = ElapsedMilliseconds() - StartTime ; 11451 (0.2 secs faster)
out.s = "t1 = " + Str(et) + " t2= " + Str(et1)
MessageRequester("times",out)
Yes. I was just trying to explain why you didn't see a big time difference with the delay(1) in the loop.Piero wrote: Mon Jan 27, 2025 11:14 am Resuming:
ALWAYS USE A NUMBER OR VARIABLE IN LOOPS IF POSSIBLE![]()