title: Why was the switch statement designed to need a break?
body: <p>Given a simple switch statement</p>
  
  <pre><code>switch (int)
  {
      case 1 :
      {
          printf("1\n");
          break;
      }
  
      case 2 : 
      {
          printf("2\n");
      }
  
      case 3 : 
      {
          printf("3\n");
      }
  }
  </code></pre>
  
  <p>The absence of a break statement in case 2, implies that execution will continue inside the code for case 3.
  This is not an accident; it was designed that way. Why was this decisions made? What benefit does this provide vs. having an automatic break semantic for the blocks? What was the rationale?</p>