[ExM Users] 'break' statement?

Tim Armstrong tim.g.armstrong at gmail.com
Tue Mar 17 11:58:46 CDT 2015


There isn't a break statement - it doesn't really fit into the language
design since multiple iterations of a loop can be running at the same time.

With a foreach loop, you can't prevent iterations from running - they're
all independent so there's no concept of a "next" iteration.

With the for loop, you can achieve roughly what you're talking about using
the loop condition.

E.g. a contrived example where we're searching for the first odd number in
an array is:

/*
 * Searching for odd numbers
 */

int A[] = [2, 4, 6, 8, 9, 11];

for (int i = 0, boolean found = false; i < size(A) && !found; i = i + 1,
found = is_odd) {
  boolean is_odd = A[i] %% 2 == 1;

  if (is_odd) {
    trace(A[i]);
  }
}

This probably looks a little wonky, but with Swift sometimes you have to
approach things a little differently to make them work.

I'd be a little careful trying to do some of these optimisations - there
are some situations where things that work great in other languages can
backfire.  The trade-off here is that if you just do a regular foreach it
can start everything running entirely in parallel, rather than starting
things up one at a time.  If you're not sure about something or want some
ideas for how to speed up code, I'm more than happy to help.

- Tim

On 17 March 2015 at 11:32, Timothy Stitt (TGAC) <Timothy.Stitt at tgac.ac.uk>
wrote:

>   Hi all,
>
>  I was just wondering if there is 'break' statement in Swift 'for' and
> possibly 'foreach' constructs?
>
>  I have a potential use case that would benefit from this although it
> probably doesn't take too much overhead right now to go through the entire
> array looking for a particular item rather than breaking when the item is
> found.
>
>  Just wondered in case I missed it in the documentation.
>
>  Tim.
>
> ---
>
> *Timothy Stitt PhD* / Head of Scientific Computing
>
> The Genome Analysis Centre (TGAC)
>
> http://www.tgac.ac.uk/
>
>
>  p: +44 1603 450378
>
> e: timothy.stitt at tgac.ac.uk
>
> _______________________________________________
> ExM-user mailing list
> ExM-user at lists.mcs.anl.gov
> https://lists.mcs.anl.gov/mailman/listinfo/exm-user
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/exm-user/attachments/20150317/8c4e8879/attachment.html>


More information about the ExM-user mailing list