title: Why does C# have break if it's not optional?
body: <p>When I create a <code>switch</code> statement in VS2008 C# like this (contrived):</p>
  
  <pre><code>switch (state) {
      case '1':
          state = '2';
      case '2':
          state = '1';
  }
  </code></pre>
  
  <p>it complains that I'm not allowed to drop through:</p>
  
  <blockquote>
    <p>Control cannot fall through from one case label ('case '1' (0x31):') to another</p>
  </blockquote>
  
  <p>If you're not allowed to drop through, then what is the purpose of the <code>break</code> statement at all? Why didn't the language designers just leave it out and automatically jump to the end of the <code>switch</code> statement instead of forcing us to put in an unnecessary construct?</p>