The comma operator (``++,++``) evaluates its operands, from left to right, and returns the second one. That's useful in some situations, but just wrong in a ``++switch++`` ``++case++``. You may think you're compactly handling multiple values in the case, but only the last one in the comma-list will ever be handled. The rest will fall through to the default.


Similarly the logical OR operator (``++||++``) will not work in a ``++switch++`` ``++case++``, only the first argument will be considered at execution time.


== Noncompliant Code Example

----
switch a {
  case 1,2:  // Noncompliant; only 2 is ever handled by this case
    doTheThing(a);
  case 3 || 4: // Noncompliant; only '3' is handled
    doThatThing(a);
  case 5:
    doTheOtherThing(a);
  default:
    console.log("Neener, neener!");  // this happens when a==1 or a == 4
}
----


== Compliant Solution

----
switch a {
  case 1:
  case 2:
    doTheThing(a);
  case 3:
  case 4:
    doThatThing(a);
  case 5:
    doTheOtherThing(a);
  default:
    console.log("Neener, neener!");
}
----

