I hadn't really played much with RAID/VLIST, so I guess this is my springboard..

VLISTING the WHILE/DO vs IF THEN yielded some interesting results

WHILE/DO
00003 00006 : 1C2 vec_add        CTR 1  => CTR
00005 0000E : 10C nop
00005 00010 : 0DC lt             CTR 4  => $R0
00005 00018 : 2DE testfw         $R0 00084:
00006 00020 : 130 printcrlf      CTR
00007 00026 : 1C2 vec_add        CTR 1  => CTR
00008 0002E : 130 printcrlf      CTR
00009 00034 : 1C2 vec_add        CTR 1  => CTR

IF/THEN EXIT
00003 00006 : 1C2 vec_add        CTR 1  => CTR
00004 0000E : 0DC lt             CTR 4  => $R0
00004 00016 : 10E not            $R0  => $R1
00004 0001C : 2DE testfw         $R1 0002C:
00004 00024 : 0C2 jump           00090:
00006 0002C : 130 printcrlf      CTR
00007 00032 : 1C2 vec_add        CTR 1  => CTR
00008 0003A : 130 printcrlf      CTR

Seems the IF/THEN EXIT adds a few extra opcodes in, but in general it's
pretty much the same effect. So with large loops (many records) it might
slow the process down a couple seconds.

George

> -----Original Message-----
> From: [email protected] [mailto:owner-u2-
> [email protected]] On Behalf Of George Gallen
> Sent: Friday, February 27, 2009 11:20 AM
> To: Ardent
> 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
> [email protected]
> To unsubscribe please visit http://listserver.u2ug.org/
-------
u2-users mailing list
[email protected]
To unsubscribe please visit http://listserver.u2ug.org/

Reply via email to