No more fall through in case statement?

Bruce Adams tortoise_74 at yeah.who.co.uk
Mon Jan 7 15:10:03 PST 2008


On Mon, 07 Jan 2008 22:51:31 -0000, S. <S at s.com> wrote:

> Bruce Adams Wrote:
>
>> On Fri, 04 Jan 2008 00:15:25 -0000, S. <S at s.com> wrote:
>>
>> > 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.
>>
>> This whole conversation boggles me. cases should *never* fall through  
>> its
>> dangerous.
>
> In other news, it has been discovered that the risk of choking is  
> greatly increased by eating anything that is not pureed.  As a result,  
> lawmakers have outlawed solid food.
>
Is that an example of Ignoratio elenchi?  
(http://en.wikipedia.org/wiki/Ignoratio_elenchi)
Lawmakers never actually outlawed goto but you don't see it used very  
often.
That's because putting glass in your food is not a good idea.

> Programming requires a brain.
>
Working in a team requires respecting other people's Brains and level of  
development.
Fall through unnecessarily complicates things without adding much if  
indeed any power.
I'd rather use my brain on the important things.

> You should go read DailyWTF for awhile.  It is possible to do the most  
> ridiculous things no matter how carefully the language is crafted.  We  
> should just stay away from hand-holding and focus on making things  
> easier.
>
Its a matter of perspective. Is it easier to debug or easier to read or  
easier
to write safe code?

> I agree with measures that make debugging easier when dealing with  
> naming and hijacking.  However, a simple step-through will reveal a case  
> falling through when it shouldn't.  The aforementioned issues are not as  
> easily caught.
>
True but its easier still if you don't need to step through at all. Its  
easy enough to
find the source and targets of a goto with a find in your code. Okay its  
nowhere near
in the same league as goto but the point's still valid.

> -S.

B.


-- 
Using Opera's revolutionary e-mail client: http://www.opera.com/mail/



More information about the Digitalmars-d mailing list