Inside the switch statement

Ary Borenszweig ary at esperanto.org.ar
Tue Jun 9 10:09:23 PDT 2009


grauzone wrote:
> BCS wrote:
>> Hello grauzone,
>>
>>>> http://groups.google.com/group/net.lang.c/msg/66008138e07aa94c
>>>>
>>> Many people (even Brian Kernighan?) have said that the worst feature
>>> of C is that switches don't break automatically before each case
>>> label.
>>>
>>> Oh god, that's from 1984, and even today we're struggling with this
>>> bullshit in the most modern dialect of C, D.
>>>
>>
>> I'm sorry, you don't have my sympathy on this one. There are to many 
>> place I've used fall throught to chuck it out.
> 
> What kind of fall-throughs were these?
> 
> A:
> 
> case value1:
> case value2:
> case valueN:
>     code1();
>     break;
> 
> B:
> 
> case value1:
>     code1();
> case value2:
>     code2();
>     break;

The solution is to forbid fallthrough, and change the switch syntax:

switch(value) {
   case 1:
   case 2:
	// something
	break;
}

gives: Error, missing break at the end of case1.

But:

switch(value) {
   case 1, 2:
	// something
	break;
}

works as expected.

What's wrong with that?


More information about the Digitalmars-d-learn mailing list