Actually, I've read that already. I had just forgotten :) Thanks. Be prepared for a coooollld switzerland :-p Chees. On 13.11.2010, at 15:55, Lukas Renggli wrote:
For that matter also see this blog post and the discussion: <http://www.lukas-renggli.ch/blog/continue-break>.
Lukas on Mate
On Monday, November 8, 2010, Marcus Denker <marcus.denker@inria.fr> wrote:
On Nov 7, 2010, at 5:50 PM, Göran Krampe wrote:
On 11/07/2010 08:06 PM, Guillermo Polito wrote:
#anySatisfy: does not iterate over the entire collection either. So if you only want to know if there is one that satisfies the condition... this is the message you're looking for.
Cheers! Guille
And finally, a generic "trick" for breaking out of loops (not just iterations over collections):
Factor out the loop in a single method, then call it. When you want to break out, just do a normal return!
This often even makes the code more readable.
But speaking of tricks...
testValueWithExitBreak
| val |
[ :break | 1 to: 10 do: [ :i | val := i. i = 4 ifTrue: [break value]. ] ] valueWithExit.
self assert: val = 4.
testValueWithExitContinue
| val last | val := 0.
1 to: 10 do: [ :i | [ :continue | i = 4 ifTrue: [continue value]. val := val + 1. last := i ] valueWithExit. ].
self assert: val = 9. self assert: last = 10.
with
BlockClosure>>valueWithExit self value: [ ^nil ]
-- Marcus Denker -- http://www.marcusdenker.de INRIA Lille -- Nord Europe. Team RMoD.
-- Lukas Renggli www.lukas-renggli.ch