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/