On Tuesday, 14 October 2014 at 21:29:59 UTC, John Colvin wrote:
You have to duplicate the case keyword when declaring case
ranges. Why?
Case ranges are inclusive at both ends of the range, unlike in
foreach. Again, why?
It comes from writing:
switch(foo) {
case 1:
case 2:
case 3:
case 4:
// code
}
Then just replacing the case 2 and case 3 with .. collapsing the
repetition to just the beginning and the end. If you write it as:
switch(foo) {
case 1:
..
case 4:
// code
}
vertically, that is, I think the rationale becomes a lot more
clear. I like this a lot, it works brilliantly for me and makes
good sense.
Allow the second `case` keyword to be removed, which would then
have the same semantics as the range in foreach.
That would be ok too.