That doesn't generalize to more than two levels (without many extra
lines of code) - you essentially have to number or label the repeat
loops, and check in many places whether the 'exitMe" variable has been
set to a higher level or not. And it's pretty fragile if additional
levels of repeat loop are added later.
and if the inner loop doesn't end immediately before the outer one, it
gets more messy - you need an exit check immediately after each "end
repeat" as well as at the top of the loop.
repeat with i = 1 to tSomething
repeat with k = 1 to tElse
if exitMe >= 2 then exit repeat
repeat with j = 1 to tSomethingElse
if exitMe = true then exit repeat
DoSomethingWith i,j
put 2 into exitMe
end repeat
if exitMe >= 2 then exit repeat
someOtherCode "here"
end repeat
if exitMe >= 1 then exit repeat
end repeat
(don't trust the above code - I have no idea whether "2" is the right
value to test for in those places :-)
-- Alex.
On 01/07/2017 00:59, Jim Lambert via use-livecode wrote:
RICHARDG wrote:
This would allow us to exit a specific loop when loops are nested.
I can't recall the specifics of his proposed syntax, but I remember
being impressed by how natural it seemed. Maybe it was along the lines of:
repeat with i = 1 to tSomething named "MySomethingLoop"
repeat with j = 1 to tSomethingElse named "MyOtherLoop"
DoSomethingWith i,j
exit "MySomethingLoop"
end repeat
end repeat
If we can tolerate 2 extra lines of code we can do nested exits this way:
repeat with i = 1 to tSomething
if exitMe = true then exit repeat
repeat with j = 1 to tSomethingElse
if exitMe = true then exit repeat
DoSomethingWith i,j
put true into exitMe
end repeat
end repeat
Jim Lambert
_______________________________________________
use-livecode mailing list
use-livecode@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode
_______________________________________________
use-livecode mailing list
use-livecode@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode