CTR =0
LOOP WHILE CTR < 4
  CTR+=1
  PRINT CTR
REPEAT

FOR CTR = 0 TO 4
   PRINT CTR
NEXT CTR

CTR = 0
LOOP
  CTR += 1
  PRINT CTR
  IF CTR > 4 THEN EXIT
REPEAT


If you're going to use a counter, might as well use a for loop.  Your test 
didn't work because you didn't test the limit after each increment.  Repeating 
the increment and print statement like your example does defeats the purpose of 
the loop.

----- Original Message ----
From: George Gallen <ggal...@wyanokegroup.com>
To: Ardent <u2-users@listserver.u2ug.org>
Sent: Friday, February 27, 2009 11:20:15 AM
Subject: [U2] DO/WHILE vs IF THEN

OK Aside from programming styles

Is there any "functional" difference between

WHILE expression DO    and     IF NOT(expression) THEN EXIT
and
UNTIL expression DO    and     IF expression THEN EXIT


First I thought that the DO/WHILE would activate as soon as
the condition occurred and drop out of a loop, but that is not
the case, the condition has to be active AND control has to be
back at the WHILE statement.


Example:

0001: CTR=0
0002: LOOP
0003:   CTR=CTR+1
0004:   WHILE CTR<4 DO
0005:   PRINT CTR
0006:   CTR=CTR+1
0007:   PRINT CTR
0008:   CTR=CTR+1
0009:   PRINT CTR
0010:   CTR=CTR+1
0011:   PRINT CTR
0012:   CTR=CTR+1
0013:   PRINT CTR
0014:   CTR=CTR+1
0015:   PRINT CTR
0016:   CTR=CTR+1
0017:   PRINT CTR
0018: REPEAT
0019: STOP
0020: END

My first thought was that once CTR = 5, the loop would end (at LINE 12) but it
didn't
until control was passed back to LINE 4, then it ended.
-------
u2-users mailing list
u2-users@listserver.u2ug.org
To unsubscribe please visit http://listserver.u2ug.org/
-------
u2-users mailing list
u2-users@listserver.u2ug.org
To unsubscribe please visit http://listserver.u2ug.org/

Reply via email to