<div dir="ltr">On Wed, Dec 9, 2015 at 9:41 AM, Jason Pollack via swift-evolution <span dir="ltr">&lt;<a href="mailto:swift-evolution@swift.org" target="_blank">swift-evolution@swift.org</a>&gt;</span> wrote:<br><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr">Solutions like this look reasonable, until you try to use normal control flow statements as you would in other loops. In the closure, a break or continue are illegal, and a return acts like a continue.<div><span><br>var</span><span> ok = </span><span>true</span><br></div><div><p><span>5</span><span>.</span><span>times</span><span> {<br></span>    ok = someTest()</p><p><span>    </span><span>if</span><span> (!</span><span>ok</span><span>) {<br>        //break - Nope!<br></span><span>        </span><span>return //Sure, but loop continues anyway<br></span>    }<br>}</p><p>Sure, it&#39;s a contrived example, but it&#39;s easy to see how this construct is not like other loops. </p><p>On the other hand, it might be nice to be able to decorate a closure such that break and continue behave as one might expect inside a loop, but that sounds like a can of worms.</p></div></div></blockquote><div>Joe Groff suggested that here:</div><div><br></div><div><a href="https://lists.swift.org/pipermail/swift-evolution/Week-of-Mon-20151207/001150.html">https://lists.swift.org/pipermail/swift-evolution/Week-of-Mon-20151207/001150.html</a> <br></div></div><br></div><div class="gmail_extra">If you can think of reasons why it might be a can of worms, I&#39;d love to hear them. It&#39;d be a nice tool to have in the toolchain.</div><div class="gmail_extra"><br></div><div class="gmail_extra">Stephen</div></div>