On Jun 19, 10 17:56, bearophile wrote:
KennyTM~:
This "fallthrough" statement already exists.
switch (x) {
case 0:
do_something();
goto case;
case 1:
do_more_thing();
goto case;
case 2:
done();
break;
default:
error();
break;
}
I didn't know this, this is a hidden D feature. So it's just a matter of D
forbidding the cases that miss an explicit return, goto, or break, assert(0),
exit(), and similar.
As for the multiple returns in a function this needs a bit of care because this
is acceptable:
switch (x) {
case 0:
if (y)
goto case;
else
return x;
default:
break;
}
Bye,
bearophile
Actually it's not hidden :)
http://www.digitalmars.com/d/1.0/statement.html#GotoStatement
http://www.digitalmars.com/d/2.0/statement.html#GotoStatement