Too bad we don't have a try/catch exception mechanism.
Here's 2 examples. They both present maintenance problems. In the first
example, you will have to test the q.done and t.done variables if there is
any code between the "next x" and the "next q". In the second example, the
return is nice and clean, but you will have to be
careful not to move the call to LOOPY inside of another subroutine at some
future point.


T.DONE=0
FOR T=1 TO 10 UNTIL T.DONE
    Q.DONE=0
    FOR Q=1 TO 6 UNTIL Q.DONE
        FOR X=1 TO 9
             IF CONDITION THEN Q.DONE=1; T.DONE=1 EXIT
        NEXT X
    NEXT Q
NEXT T

....or......
GOSUB LOOPY:
STOP

LOOPY:
  FOR T=1 TO 10
    FOR Q=1 TO 6
      FOR X=1 TO 9
        IF CONDITION THEN RETURN
      NEXT X
    NEXT Q
  NEXT T
RETURN


-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] Behalf Of George Gallen
Sent: Monday, January 10, 2005 1:33 PM
To: Ardent List
Subject: [U2] How to "exit" out mulitple loops?


For instance.

FOR T=1 TO 10
    FOR Q=1 TO 6
        FOR X=1 TO 9
             IF CONDITION THEN EXIT ; EXIT
                            OR
             IF CONDITION THEN CONTINUE T
        NEXT X
    NEXT Q
NEXT T

So the point being if a condition occurs, I want to stop
   the x and q loops entirely, and continue on with the
   next t iteration.

This is with UV10

yes, I could use a line label, but then I'd almost be
forced into a goto. Please no wars on this
or anything that takes more than 5 additional lines

George

George Gallen
Senior Programmer/Analyst
Accounting/Data Division
[EMAIL PROTECTED]
ph:856.848.1000 Ext 220

SLACK Incorporated - An innovative information, education and management
company
http://www.slackinc.com
-------
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