Re: Goto, etc.
- Posted by Everett Williams <rett at GVTC.COM> Nov 16, 1999
- 434 views
On Wed, 17 Nov 1999 08:07:44 +1100, Derek Parnell <dparnell at BIGPOND.NET.AU> wrote: >I've see this sort of thing before. However, it creates an opportunity for >bugs to creep in, because if you ever change the nesting levels, you have >to review every "exit" integer to make sure its still the right number. > >eg. Original Code... >for i=1 to 10 do > for j=5 to 25 by 5 do > while k<75 do > if error1 then exit end if -- or exit 1 > if error2 then exit 2 end if > if error3 then exit 3 end if > end while > end for >end for > >eg. Modified Code... >for i=1 to 10 do > for z=1 to 3 do > ... > for j=5 to 25 by 5 do > while k<75 do > if error1 then exit 2 end if <<<Must Change > if error2 then exit 3 end if <<<Must Change > if error3 then exit 4 end if <<<Must Change > end while > end for > end for >end for > > >cheers, >Derek Parnell >Melbourne, Australia Especially if the for is being more for control of code flow than for actual looping. Same goes double for while statements. Whoever it was that came up with the idea of using the the for variable as the tag had the right idea. No label needed and no confusion as to depth. I would go for the while[A] x > 0 do while[B] y > 0 do etc., etc. with exit[A] and exit[B] as the exit side. Then, if you coded a while with no subscript it could not be the target of a subscripted exit. This would allow the programmer to prevent someone from skipping through a given while level from below without specific logic at that while level. The while subscript would follow all the rules of a for variable except that it would have no content. That way, no one would have to declare all their while subscripts just the way they don't have to declare there for variables now. The subscript carries with it the idea of a sequence of items, which it in fact would be. Just, a sequence that no one has direct access to. If you wanted to give it a job, it could be an implicit loop counter if declared as an integer that would cost very little. How many times have you wanted a to get the current loop count, but didn't want the code of the count to get in the way of your real code. Everett L.(Rett) Williams rett at gvtc.com