Few things
Don Clugston
dac at nospam.com.au
Fri Aug 3 08:19:36 PDT 2007
Lionello Lunesu wrote:
>> 7) From the FAQ:
>
>> Many people have asked for a requirement that there be a break
> > between cases in a switch statement, that C's behavior of
> > silently falling through is the cause of many bugs.
> > The reason D doesn't change this is for the same reason that
> > integral promotion rules and operator precedence rules were
> > kept the same - to make code that looks the same as in C
> > operate the same. If it had subtly different semantics, it
> > will cause frustratingly subtle bugs.
>
>> I agree with both points of view. My idea: calling this
> > statement differently (like caseof) instead of "switch"
> > (like in Pascal), so you can change its semantics too,
> > removing the falling through (you may use the Pascal
> > semantic too).
>
> Sorry to hijack your point here, but this got me thinking:
>
> Why not use "continue" for seeping through to the next case statement?
> DMD could then complain if a case does not end with
> break/continue/goto/return and silently insert a assert(0) before each
> case (the way it does for functions that return a value.)
Doesn't
for (c;;) {
switch (c) {
case 'a': continue;
case 'b': break;
}
}
already have a meaning?
More information about the Digitalmars-d
mailing list