Am 09.05.16 um 19:51 schrieb Joseph Alotta:
Greetings,
I am in need of a way to go to the end of a do loop.
myCollection do: [ :item |
(blah blah) ifTrue: “we found an item of the first type”
next item.
(blah blah) ifTrue: “we found an item of the second type”
next item.
(blah blah) ifTrue: “we found an item of the third type”
next item.
(blah blah) ifTrue: “we found an item of the fourth type”
next item.
(blah blah) ifTrue: “we found an item of the fifth type”
].
Some other languages have “break” or “next” or “goto LABEL” to skip the
processing of the rest of the loop in case the item is found in the first test.
How do I implement this in Squeak?
I don't have a good answer for your problem. Smalltalk offers a great
interface for iterating over collections, >>do: is not the only one.
Alas there is no-one I am aware of that supports what is needed here
(something like a split into different sub-collections).
>>select: could be used to get all the items for one of your
conditions. Thus, for your problem you would need five select:-loops,
which is sub-optimal performance-wise.
Maybe your problem can be rephrased such that Smalltalk's collection
interface offers a better solution. Nevertheless, I suggest to take
a closer look at the remaining selectors like >>select:, >>reject:,
>>collect, ...
Regards
Andreas
_______________________________________________
Beginners mailing list
[email protected]
http://lists.squeakfoundation.org/mailman/listinfo/beginners