<div dir="ltr">Unlabeled &quot;break&quot; within a do is a compiler error, even if the do is nested within a different control flow.<div><br></div><div>If you really hate coming up with label names, just start with L1 and start counting up. If you really need to come up with that many labeled breaks in your code, though, I would invite you to step back and think about whether or not you could refactor your control flow in a way that makes it easier for others to understand.</div><div><br></div><div>Austin</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Dec 10, 2015 at 5:28 AM, Amir Michail 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><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class=""><br>
&gt; On Dec 10, 2015, at 8:20 AM, Kevin Wooten &lt;<a href="mailto:kdubb@me.com">kdubb@me.com</a>&gt; wrote:<br>
&gt;<br>
&gt; Curios as to what you see the advantage of this is, over labels? Seems to me it only saves a few keystrokes at the expense of clarity.<br>
<br>
</span>What “break&quot; currently does can be unclear. For example, “break” without a label in do {…} doesn’t just break out of the do.<br>
<br>
Also, I really don’t like coming up with label names. They tend to be uninteresting.<br>
<div class="HOEnZb"><div class="h5"><br>
&gt;<br>
&gt; Given the stated goals of Swift I don’t imagine this would be an interesting proposal for many.<br>
&gt;<br>
&gt;&gt; On Dec 10, 2015, at 5:59 AM, Amir Michail via swift-evolution &lt;<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a>&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; For example:<br>
&gt;&gt;<br>
&gt;&gt; for* … {<br>
&gt;&gt; for** ... {<br>
&gt;&gt;   for ... {<br>
&gt;&gt;     …<br>
&gt;&gt;     if … { break for* }<br>
&gt;&gt;     ...<br>
&gt;&gt;     if … { continue for** }<br>
&gt;&gt;     ...<br>
&gt;&gt;   }<br>
&gt;&gt; }<br>
&gt;&gt; }<br>
&gt;&gt;<br>
&gt;&gt; repeat {<br>
&gt;&gt; do {<br>
&gt;&gt;   for … {<br>
&gt;&gt;     if … { break do }<br>
&gt;&gt;     if … { continue repeat }<br>
&gt;&gt;   }<br>
&gt;&gt;   …<br>
&gt;&gt; }<br>
&gt;&gt; } while …<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; _______________________________________________<br>
&gt;&gt; swift-evolution mailing list<br>
&gt;&gt; <a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a><br>
&gt;&gt; <a href="https://lists.swift.org/mailman/listinfo/swift-evolution" rel="noreferrer" target="_blank">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br>
&gt;<br>
<br>
_______________________________________________<br>
swift-evolution mailing list<br>
<a href="mailto:swift-evolution@swift.org">swift-evolution@swift.org</a><br>
<a href="https://lists.swift.org/mailman/listinfo/swift-evolution" rel="noreferrer" target="_blank">https://lists.swift.org/mailman/listinfo/swift-evolution</a><br>
</div></div></blockquote></div><br></div>