Ok so they are aligned. My mistake. Didn&#39;t compile the code first. I got confused by your statement:<br><br>enum X { case a, b }<br>        switch X.a {<br>        case .a, .b where 1 == 0:<br>                print(&quot;Matched&quot;)<br>        default:<br>                print(&quot;Didn&#39;t&quot;)<br>        }<br><br>The `where` clause only applies to the `.b`, not the `.a`, so the code will print &quot;Matched&quot;. To make it print &quot;Didn&#39;t&quot;, you&#39;d have to write `case .a where 1 == 0, .b where 1 == 0`<br>------<br><br>Your example was of where used as a break condition and I was applying the same pattern to the for-in where which is a filter like case-let.<br><br>I guess this just illustrates the confusion of the where clauses.  Think I&#39;ll just use guards for now.<br><div class="gmail_quote"><div dir="ltr">On Fri, Jun 10, 2016 at 12:15 PM Brent Royal-Gordon &lt;<a href="mailto:brent@architechies.com">brent@architechies.com</a>&gt; wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">&gt; Following Brent&#39;s logic that the for-in where should mimic the switch statement functionality, then this example:<br>
&gt;<br>
&gt; for (eachKey, eachValue)<br>
&gt; where eachValue &gt; 5<br>
&gt; in theKeyValuePairs {... }<br>
&gt;<br>
&gt; Should read like:<br>
&gt;<br>
&gt; for (eachKey, eachValue where eachValue &gt; 5) in theKeyValuePairs {... }<br>
&gt;<br>
&gt; And,<br>
&gt;<br>
&gt; for (eachKey, eachValue)<br>
&gt; where eachKey % 2 == 0 &amp;&amp; eachValue &gt; 5<br>
&gt; in theKeyValuePairs {... }<br>
&gt;<br>
&gt; Should read like:<br>
&gt;<br>
&gt; for (eachKey where eachKey % 2 == 0, eachValue where eachValue &gt; 5)<br>
&gt; in theKeyValuePairs {... }<br>
<br>
I&#39;m not sure why you say that. This compiles:<br>
<br>
        switch pair {<br>
        case let (key, value) where key % 2 == 0 &amp;&amp; value &gt; 5:<br>
                print(&quot;yes&quot;)<br>
        default:<br>
                print(&quot;no&quot;)<br>
        }<br>
<br>
While this fails to compile:<br>
<br>
        switch pair {<br>
        case let (key where key % 2, value where value &gt; 5):<br>
                print(&quot;yes&quot;)<br>
        default:<br>
                print(&quot;no&quot;)<br>
        }<br>
<br>
So where are your multiple, parenthesized `where` clauses coming from?<br>
<br>
--<br>
Brent Royal-Gordon<br>
Architechies<br>
<br>
</blockquote></div>