How about allowing: switch (val) { case (1) { doX(); } case (2, 3) { doY(); } default { doZ(); } ) Or would this create some horrible syntactic ambiguities? Or, on the other hand, it could just be too damn ugly. ;)