No more fall through in case statement?

S. S at s.com
Thu Jan 3 16:15:25 PST 2008


Carlos Santander Wrote:
> 
> How about using existing D syntax?
> 
> switch (s[i]) {
>       case ' ', '\t', '\f', '\r', '\n', '\v':
>           if (inword) {
>               r ~= capitalize(s[istart .. i]);
>               inword = false;
>           }
>           break;
> 
>       default:
>           if (!inword) {
>               if (r.length)
>               r ~= ' ';
>               istart = i;
>               inword = true;
>           }
>           break;
> }

This whole conversation about switch was kind of lost on me, but I have to contribute this.

I, at various times, have written code that depends on case statements falling through, while not being identical!

For example:

switch(foo)
{
case 'bob':
    //Do bob stuff
    //Fall through and doo bar stuff too.
case 'bar':
    //Do bar stuff and exit   
    break;

case 'baz':
   //Do some baz stuff
   break;
}

Whatever is changed shouldn't break this.



More information about the Digitalmars-d mailing list