Wouldn't it be nice (case range statements)

John Colvin via Digitalmars-d digitalmars-d at puremagic.com
Wed Oct 15 01:03:12 PDT 2014


On Tuesday, 14 October 2014 at 21:33:36 UTC, Adam D. Ruppe wrote:
> 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.

Ah, yeah, that does make 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.


More information about the Digitalmars-d mailing list