If a developer fails to add a break statement to the end of a switch-clause, then control flow "falls" into any following switch-clause. Whilst this is sometimes intentional, it is often an error. To ensure that such errors can be detected, the last statement in every switch-clause shall be a break statement, or if the switch-clause is a compound statement, then the last statement in the compound statement shall be a break statement. A special case exists if the switch-clause is empty, as this allows groups of clauses requiring identical statements to be created.

The following code snippet illustrates this rule:

switch (param) {
  case 0: // Compliant
  case 1: // Compliant
    break;
  case 2: // Compliant
    return;
  case 3: // Compliant
    throw new Error();
  case 4: // Non-compliant
    doSomething();
  default: // Non-compliant - default must also have "break"
    doSomethingElse();
}